{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Checking whether there is an H2O instance running at http://localhost:54321. connected.\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div style=\"overflow:auto\"><table style=\"width:50%\"><tr><td>H2O cluster uptime:</td>\n",
       "<td>1 hour 7 mins</td></tr>\n",
       "<tr><td>H2O cluster timezone:</td>\n",
       "<td>America/New_York</td></tr>\n",
       "<tr><td>H2O data parsing timezone:</td>\n",
       "<td>UTC</td></tr>\n",
       "<tr><td>H2O cluster version:</td>\n",
       "<td>3.22.1.4</td></tr>\n",
       "<tr><td>H2O cluster version age:</td>\n",
       "<td>10 days </td></tr>\n",
       "<tr><td>H2O cluster name:</td>\n",
       "<td>H2O_from_python_SusanLi_xym1jo</td></tr>\n",
       "<tr><td>H2O cluster total nodes:</td>\n",
       "<td>1</td></tr>\n",
       "<tr><td>H2O cluster free memory:</td>\n",
       "<td>3.358 Gb</td></tr>\n",
       "<tr><td>H2O cluster total cores:</td>\n",
       "<td>4</td></tr>\n",
       "<tr><td>H2O cluster allowed cores:</td>\n",
       "<td>4</td></tr>\n",
       "<tr><td>H2O cluster status:</td>\n",
       "<td>locked, healthy</td></tr>\n",
       "<tr><td>H2O connection url:</td>\n",
       "<td>http://localhost:54321</td></tr>\n",
       "<tr><td>H2O connection proxy:</td>\n",
       "<td>None</td></tr>\n",
       "<tr><td>H2O internal security:</td>\n",
       "<td>False</td></tr>\n",
       "<tr><td>H2O API Extensions:</td>\n",
       "<td>Amazon S3, Algos, AutoML, Core V3, Core V4</td></tr>\n",
       "<tr><td>Python version:</td>\n",
       "<td>3.6.4 final</td></tr></table></div>"
      ],
      "text/plain": [
       "--------------------------  ------------------------------------------\n",
       "H2O cluster uptime:         1 hour 7 mins\n",
       "H2O cluster timezone:       America/New_York\n",
       "H2O data parsing timezone:  UTC\n",
       "H2O cluster version:        3.22.1.4\n",
       "H2O cluster version age:    10 days\n",
       "H2O cluster name:           H2O_from_python_SusanLi_xym1jo\n",
       "H2O cluster total nodes:    1\n",
       "H2O cluster free memory:    3.358 Gb\n",
       "H2O cluster total cores:    4\n",
       "H2O cluster allowed cores:  4\n",
       "H2O cluster status:         locked, healthy\n",
       "H2O connection url:         http://localhost:54321\n",
       "H2O connection proxy:\n",
       "H2O internal security:      False\n",
       "H2O API Extensions:         Amazon S3, Algos, AutoML, Core V3, Core V4\n",
       "Python version:             3.6.4 final\n",
       "--------------------------  ------------------------------------------"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import h2o\n",
    "h2o.init(max_mem_size = 2)            #uses all cores by default\n",
    "h2o.remove_all()\n",
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from h2o.estimators.deeplearning import H2ODeepLearningEstimator"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Parse progress: |█████████████████████████████████████████████████████████| 100%\n"
     ]
    }
   ],
   "source": [
    "higgs = h2o.import_file('higgs_boston_train.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<thead>\n",
       "<tr><th style=\"text-align: right;\">  EventId</th><th style=\"text-align: right;\">  DER_mass_MMC</th><th style=\"text-align: right;\">  DER_mass_transverse_met_lep</th><th style=\"text-align: right;\">  DER_mass_vis</th><th style=\"text-align: right;\">  DER_pt_h</th><th style=\"text-align: right;\">  DER_deltaeta_jet_jet</th><th style=\"text-align: right;\">  DER_mass_jet_jet</th><th style=\"text-align: right;\">  DER_prodeta_jet_jet</th><th style=\"text-align: right;\">  DER_deltar_tau_lep</th><th style=\"text-align: right;\">  DER_pt_tot</th><th style=\"text-align: right;\">  DER_sum_pt</th><th style=\"text-align: right;\">  DER_pt_ratio_lep_tau</th><th style=\"text-align: right;\">  DER_met_phi_centrality</th><th style=\"text-align: right;\">  DER_lep_eta_centrality</th><th style=\"text-align: right;\">  PRI_tau_pt</th><th style=\"text-align: right;\">  PRI_tau_eta</th><th style=\"text-align: right;\">  PRI_tau_phi</th><th style=\"text-align: right;\">  PRI_lep_pt</th><th style=\"text-align: right;\">  PRI_lep_eta</th><th style=\"text-align: right;\">  PRI_lep_phi</th><th style=\"text-align: right;\">  PRI_met</th><th style=\"text-align: right;\">  PRI_met_phi</th><th style=\"text-align: right;\">  PRI_met_sumet</th><th style=\"text-align: right;\">  PRI_jet_num</th><th style=\"text-align: right;\">  PRI_jet_leading_pt</th><th style=\"text-align: right;\">  PRI_jet_leading_eta</th><th style=\"text-align: right;\">  PRI_jet_leading_phi</th><th style=\"text-align: right;\">  PRI_jet_subleading_pt</th><th style=\"text-align: right;\">  PRI_jet_subleading_eta</th><th style=\"text-align: right;\">  PRI_jet_subleading_phi</th><th style=\"text-align: right;\">  PRI_jet_all_pt</th><th style=\"text-align: right;\">    Weight</th><th>Label  </th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "<tr><td style=\"text-align: right;\">   100000</td><td style=\"text-align: right;\">       138.47 </td><td style=\"text-align: right;\">                       51.655</td><td style=\"text-align: right;\">        97.827</td><td style=\"text-align: right;\">    27.98 </td><td style=\"text-align: right;\">                 0.91 </td><td style=\"text-align: right;\">           124.711</td><td style=\"text-align: right;\">                2.666</td><td style=\"text-align: right;\">               3.064</td><td style=\"text-align: right;\">      41.928</td><td style=\"text-align: right;\">     197.76 </td><td style=\"text-align: right;\">                 1.582</td><td style=\"text-align: right;\">                   1.396</td><td style=\"text-align: right;\">                   0.2  </td><td style=\"text-align: right;\">      32.638</td><td style=\"text-align: right;\">        1.017</td><td style=\"text-align: right;\">        0.381</td><td style=\"text-align: right;\">      51.626</td><td style=\"text-align: right;\">        2.273</td><td style=\"text-align: right;\">       -2.414</td><td style=\"text-align: right;\">   16.824</td><td style=\"text-align: right;\">       -0.277</td><td style=\"text-align: right;\">        258.733</td><td style=\"text-align: right;\">            2</td><td style=\"text-align: right;\">              67.435</td><td style=\"text-align: right;\">                2.15 </td><td style=\"text-align: right;\">                0.444</td><td style=\"text-align: right;\">                 46.062</td><td style=\"text-align: right;\">                   1.24 </td><td style=\"text-align: right;\">                  -2.475</td><td style=\"text-align: right;\">         113.497</td><td style=\"text-align: right;\">0.00265331</td><td>s      </td></tr>\n",
       "<tr><td style=\"text-align: right;\">   100001</td><td style=\"text-align: right;\">       160.937</td><td style=\"text-align: right;\">                       68.768</td><td style=\"text-align: right;\">       103.235</td><td style=\"text-align: right;\">    48.146</td><td style=\"text-align: right;\">              -999    </td><td style=\"text-align: right;\">          -999    </td><td style=\"text-align: right;\">             -999    </td><td style=\"text-align: right;\">               3.473</td><td style=\"text-align: right;\">       2.078</td><td style=\"text-align: right;\">     125.157</td><td style=\"text-align: right;\">                 0.879</td><td style=\"text-align: right;\">                   1.414</td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">      42.014</td><td style=\"text-align: right;\">        2.039</td><td style=\"text-align: right;\">       -3.011</td><td style=\"text-align: right;\">      36.918</td><td style=\"text-align: right;\">        0.501</td><td style=\"text-align: right;\">        0.103</td><td style=\"text-align: right;\">   44.704</td><td style=\"text-align: right;\">       -1.916</td><td style=\"text-align: right;\">        164.546</td><td style=\"text-align: right;\">            1</td><td style=\"text-align: right;\">              46.226</td><td style=\"text-align: right;\">                0.725</td><td style=\"text-align: right;\">                1.158</td><td style=\"text-align: right;\">               -999    </td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">          46.226</td><td style=\"text-align: right;\">2.23358   </td><td>b      </td></tr>\n",
       "<tr><td style=\"text-align: right;\">   100002</td><td style=\"text-align: right;\">      -999    </td><td style=\"text-align: right;\">                      162.172</td><td style=\"text-align: right;\">       125.953</td><td style=\"text-align: right;\">    35.635</td><td style=\"text-align: right;\">              -999    </td><td style=\"text-align: right;\">          -999    </td><td style=\"text-align: right;\">             -999    </td><td style=\"text-align: right;\">               3.148</td><td style=\"text-align: right;\">       9.336</td><td style=\"text-align: right;\">     197.814</td><td style=\"text-align: right;\">                 3.776</td><td style=\"text-align: right;\">                   1.414</td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">      32.154</td><td style=\"text-align: right;\">       -0.705</td><td style=\"text-align: right;\">       -2.093</td><td style=\"text-align: right;\">     121.409</td><td style=\"text-align: right;\">       -0.953</td><td style=\"text-align: right;\">        1.052</td><td style=\"text-align: right;\">   54.283</td><td style=\"text-align: right;\">       -2.186</td><td style=\"text-align: right;\">        260.414</td><td style=\"text-align: right;\">            1</td><td style=\"text-align: right;\">              44.251</td><td style=\"text-align: right;\">                2.053</td><td style=\"text-align: right;\">               -2.028</td><td style=\"text-align: right;\">               -999    </td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">          44.251</td><td style=\"text-align: right;\">2.34739   </td><td>b      </td></tr>\n",
       "<tr><td style=\"text-align: right;\">   100003</td><td style=\"text-align: right;\">       143.905</td><td style=\"text-align: right;\">                       81.417</td><td style=\"text-align: right;\">        80.943</td><td style=\"text-align: right;\">     0.414</td><td style=\"text-align: right;\">              -999    </td><td style=\"text-align: right;\">          -999    </td><td style=\"text-align: right;\">             -999    </td><td style=\"text-align: right;\">               3.31 </td><td style=\"text-align: right;\">       0.414</td><td style=\"text-align: right;\">      75.968</td><td style=\"text-align: right;\">                 2.354</td><td style=\"text-align: right;\">                  -1.285</td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">      22.647</td><td style=\"text-align: right;\">       -1.655</td><td style=\"text-align: right;\">        0.01 </td><td style=\"text-align: right;\">      53.321</td><td style=\"text-align: right;\">       -0.522</td><td style=\"text-align: right;\">       -3.1  </td><td style=\"text-align: right;\">   31.082</td><td style=\"text-align: right;\">        0.06 </td><td style=\"text-align: right;\">         86.062</td><td style=\"text-align: right;\">            0</td><td style=\"text-align: right;\">            -999    </td><td style=\"text-align: right;\">             -999    </td><td style=\"text-align: right;\">             -999    </td><td style=\"text-align: right;\">               -999    </td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">           0    </td><td style=\"text-align: right;\">5.44638   </td><td>b      </td></tr>\n",
       "<tr><td style=\"text-align: right;\">   100004</td><td style=\"text-align: right;\">       175.864</td><td style=\"text-align: right;\">                       16.915</td><td style=\"text-align: right;\">       134.805</td><td style=\"text-align: right;\">    16.405</td><td style=\"text-align: right;\">              -999    </td><td style=\"text-align: right;\">          -999    </td><td style=\"text-align: right;\">             -999    </td><td style=\"text-align: right;\">               3.891</td><td style=\"text-align: right;\">      16.405</td><td style=\"text-align: right;\">      57.983</td><td style=\"text-align: right;\">                 1.056</td><td style=\"text-align: right;\">                  -1.385</td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">      28.209</td><td style=\"text-align: right;\">       -2.197</td><td style=\"text-align: right;\">       -2.231</td><td style=\"text-align: right;\">      29.774</td><td style=\"text-align: right;\">        0.798</td><td style=\"text-align: right;\">        1.569</td><td style=\"text-align: right;\">    2.723</td><td style=\"text-align: right;\">       -0.871</td><td style=\"text-align: right;\">         53.131</td><td style=\"text-align: right;\">            0</td><td style=\"text-align: right;\">            -999    </td><td style=\"text-align: right;\">             -999    </td><td style=\"text-align: right;\">             -999    </td><td style=\"text-align: right;\">               -999    </td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">           0    </td><td style=\"text-align: right;\">6.24533   </td><td>b      </td></tr>\n",
       "<tr><td style=\"text-align: right;\">   100005</td><td style=\"text-align: right;\">        89.744</td><td style=\"text-align: right;\">                       13.55 </td><td style=\"text-align: right;\">        59.149</td><td style=\"text-align: right;\">   116.344</td><td style=\"text-align: right;\">                 2.636</td><td style=\"text-align: right;\">           284.584</td><td style=\"text-align: right;\">               -0.54 </td><td style=\"text-align: right;\">               1.362</td><td style=\"text-align: right;\">      61.619</td><td style=\"text-align: right;\">     278.876</td><td style=\"text-align: right;\">                 0.588</td><td style=\"text-align: right;\">                   0.479</td><td style=\"text-align: right;\">                   0.975</td><td style=\"text-align: right;\">      53.651</td><td style=\"text-align: right;\">        0.371</td><td style=\"text-align: right;\">        1.329</td><td style=\"text-align: right;\">      31.565</td><td style=\"text-align: right;\">       -0.884</td><td style=\"text-align: right;\">        1.857</td><td style=\"text-align: right;\">   40.735</td><td style=\"text-align: right;\">        2.237</td><td style=\"text-align: right;\">        282.849</td><td style=\"text-align: right;\">            3</td><td style=\"text-align: right;\">              90.547</td><td style=\"text-align: right;\">               -2.412</td><td style=\"text-align: right;\">               -0.653</td><td style=\"text-align: right;\">                 56.165</td><td style=\"text-align: right;\">                   0.224</td><td style=\"text-align: right;\">                   3.106</td><td style=\"text-align: right;\">         193.66 </td><td style=\"text-align: right;\">0.083414  </td><td>b      </td></tr>\n",
       "<tr><td style=\"text-align: right;\">   100006</td><td style=\"text-align: right;\">       148.754</td><td style=\"text-align: right;\">                       28.862</td><td style=\"text-align: right;\">       107.782</td><td style=\"text-align: right;\">   106.13 </td><td style=\"text-align: right;\">                 0.733</td><td style=\"text-align: right;\">           158.359</td><td style=\"text-align: right;\">                0.113</td><td style=\"text-align: right;\">               2.941</td><td style=\"text-align: right;\">       2.545</td><td style=\"text-align: right;\">     305.967</td><td style=\"text-align: right;\">                 3.371</td><td style=\"text-align: right;\">                   1.393</td><td style=\"text-align: right;\">                   0.791</td><td style=\"text-align: right;\">      28.85 </td><td style=\"text-align: right;\">        1.113</td><td style=\"text-align: right;\">        2.409</td><td style=\"text-align: right;\">      97.24 </td><td style=\"text-align: right;\">        0.675</td><td style=\"text-align: right;\">       -0.966</td><td style=\"text-align: right;\">   38.421</td><td style=\"text-align: right;\">       -1.443</td><td style=\"text-align: right;\">        294.074</td><td style=\"text-align: right;\">            2</td><td style=\"text-align: right;\">             123.01 </td><td style=\"text-align: right;\">                0.864</td><td style=\"text-align: right;\">                1.45 </td><td style=\"text-align: right;\">                 56.867</td><td style=\"text-align: right;\">                   0.131</td><td style=\"text-align: right;\">                  -2.767</td><td style=\"text-align: right;\">         179.877</td><td style=\"text-align: right;\">0.00265331</td><td>s      </td></tr>\n",
       "<tr><td style=\"text-align: right;\">   100007</td><td style=\"text-align: right;\">       154.916</td><td style=\"text-align: right;\">                       10.418</td><td style=\"text-align: right;\">        94.714</td><td style=\"text-align: right;\">    29.169</td><td style=\"text-align: right;\">              -999    </td><td style=\"text-align: right;\">          -999    </td><td style=\"text-align: right;\">             -999    </td><td style=\"text-align: right;\">               2.897</td><td style=\"text-align: right;\">       1.526</td><td style=\"text-align: right;\">     138.178</td><td style=\"text-align: right;\">                 0.365</td><td style=\"text-align: right;\">                  -1.305</td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">      78.8  </td><td style=\"text-align: right;\">        0.654</td><td style=\"text-align: right;\">        1.547</td><td style=\"text-align: right;\">      28.74 </td><td style=\"text-align: right;\">        0.506</td><td style=\"text-align: right;\">       -1.347</td><td style=\"text-align: right;\">   22.275</td><td style=\"text-align: right;\">       -1.761</td><td style=\"text-align: right;\">        187.299</td><td style=\"text-align: right;\">            1</td><td style=\"text-align: right;\">              30.638</td><td style=\"text-align: right;\">               -0.715</td><td style=\"text-align: right;\">               -1.724</td><td style=\"text-align: right;\">               -999    </td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">          30.638</td><td style=\"text-align: right;\">0.0186361 </td><td>s      </td></tr>\n",
       "<tr><td style=\"text-align: right;\">   100008</td><td style=\"text-align: right;\">       105.594</td><td style=\"text-align: right;\">                       50.559</td><td style=\"text-align: right;\">       100.989</td><td style=\"text-align: right;\">     4.288</td><td style=\"text-align: right;\">              -999    </td><td style=\"text-align: right;\">          -999    </td><td style=\"text-align: right;\">             -999    </td><td style=\"text-align: right;\">               2.904</td><td style=\"text-align: right;\">       4.288</td><td style=\"text-align: right;\">      65.333</td><td style=\"text-align: right;\">                 0.675</td><td style=\"text-align: right;\">                  -1.366</td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">      39.008</td><td style=\"text-align: right;\">        2.433</td><td style=\"text-align: right;\">       -2.532</td><td style=\"text-align: right;\">      26.325</td><td style=\"text-align: right;\">        0.21 </td><td style=\"text-align: right;\">        1.884</td><td style=\"text-align: right;\">   37.791</td><td style=\"text-align: right;\">        0.024</td><td style=\"text-align: right;\">        129.804</td><td style=\"text-align: right;\">            0</td><td style=\"text-align: right;\">            -999    </td><td style=\"text-align: right;\">             -999    </td><td style=\"text-align: right;\">             -999    </td><td style=\"text-align: right;\">               -999    </td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">           0    </td><td style=\"text-align: right;\">5.296     </td><td>b      </td></tr>\n",
       "<tr><td style=\"text-align: right;\">   100009</td><td style=\"text-align: right;\">       128.053</td><td style=\"text-align: right;\">                       88.941</td><td style=\"text-align: right;\">        69.272</td><td style=\"text-align: right;\">   193.392</td><td style=\"text-align: right;\">              -999    </td><td style=\"text-align: right;\">          -999    </td><td style=\"text-align: right;\">             -999    </td><td style=\"text-align: right;\">               1.609</td><td style=\"text-align: right;\">      28.859</td><td style=\"text-align: right;\">     255.123</td><td style=\"text-align: right;\">                 0.599</td><td style=\"text-align: right;\">                   0.538</td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">      54.646</td><td style=\"text-align: right;\">       -1.533</td><td style=\"text-align: right;\">        0.416</td><td style=\"text-align: right;\">      32.742</td><td style=\"text-align: right;\">       -0.317</td><td style=\"text-align: right;\">       -0.636</td><td style=\"text-align: right;\">  132.678</td><td style=\"text-align: right;\">        0.845</td><td style=\"text-align: right;\">        294.741</td><td style=\"text-align: right;\">            1</td><td style=\"text-align: right;\">             167.735</td><td style=\"text-align: right;\">               -2.767</td><td style=\"text-align: right;\">               -2.514</td><td style=\"text-align: right;\">               -999    </td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">                -999    </td><td style=\"text-align: right;\">         167.735</td><td style=\"text-align: right;\">0.00150187</td><td>s      </td></tr>\n",
       "</tbody>\n",
       "</table>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": []
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "higgs.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(250000, 33)"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "higgs.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "higgs_df = higgs.as_data_frame(use_pandas=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "b    164333\n",
       "s     85667\n",
       "Name: Label, dtype: int64"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "higgs_df['Label'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Rows:250000\n",
      "Cols:33\n",
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<thead>\n",
       "<tr><th>       </th><th>EventId          </th><th>DER_mass_MMC      </th><th>DER_mass_transverse_met_lep  </th><th>DER_mass_vis     </th><th>DER_pt_h          </th><th>DER_deltaeta_jet_jet  </th><th>DER_mass_jet_jet  </th><th>DER_prodeta_jet_jet  </th><th>DER_deltar_tau_lep  </th><th>DER_pt_tot        </th><th>DER_sum_pt        </th><th>DER_pt_ratio_lep_tau  </th><th>DER_met_phi_centrality  </th><th>DER_lep_eta_centrality  </th><th>PRI_tau_pt        </th><th>PRI_tau_eta         </th><th>PRI_tau_phi          </th><th>PRI_lep_pt        </th><th>PRI_lep_eta         </th><th>PRI_lep_phi        </th><th>PRI_met          </th><th>PRI_met_phi          </th><th>PRI_met_sumet     </th><th>PRI_jet_num       </th><th>PRI_jet_leading_pt  </th><th>PRI_jet_leading_eta  </th><th>PRI_jet_leading_phi  </th><th>PRI_jet_subleading_pt  </th><th>PRI_jet_subleading_eta  </th><th>PRI_jet_subleading_phi  </th><th>PRI_jet_all_pt   </th><th>Weight            </th><th>Label  </th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "<tr><td>type   </td><td>int              </td><td>real              </td><td>real                         </td><td>real             </td><td>real              </td><td>real                  </td><td>real              </td><td>real                 </td><td>real                </td><td>real              </td><td>real              </td><td>real                  </td><td>real                    </td><td>real                    </td><td>real              </td><td>real                </td><td>real                 </td><td>real              </td><td>real                </td><td>real               </td><td>real             </td><td>real                 </td><td>real              </td><td>int               </td><td>real                </td><td>real                 </td><td>real                 </td><td>real                   </td><td>real                    </td><td>real                    </td><td>real             </td><td>real              </td><td>enum   </td></tr>\n",
       "<tr><td>mins   </td><td>100000.0         </td><td>-999.0            </td><td>0.0                          </td><td>6.329            </td><td>0.0               </td><td>-999.0                </td><td>-999.0            </td><td>-999.0               </td><td>0.208               </td><td>0.0               </td><td>46.104            </td><td>0.047                 </td><td>-1.414                  </td><td>-999.0                  </td><td>20.0              </td><td>-2.499              </td><td>-3.142               </td><td>26.0              </td><td>-2.505              </td><td>-3.142             </td><td>0.109            </td><td>-3.142               </td><td>13.678            </td><td>0.0               </td><td>-999.0              </td><td>-999.0               </td><td>-999.0               </td><td>-999.0                 </td><td>-999.0                  </td><td>-999.0                  </td><td>0.0              </td><td>0.00150187        </td><td>       </td></tr>\n",
       "<tr><td>mean   </td><td>224999.5         </td><td>-49.02307943999998</td><td>49.23981927600002            </td><td>81.18198161199993</td><td>57.895961656000004</td><td>-708.4206753999989    </td><td>-601.2370507320001</td><td>-709.3566028999998   </td><td>2.3730998439999995  </td><td>18.917332444000014</td><td>158.43221704799967</td><td>1.437609431999999     </td><td>-0.12830470799999993    </td><td>-708.9851891320004      </td><td>38.70741912800002 </td><td>-0.01097304800000001</td><td>-0.008171071999999998</td><td>46.66020724800001 </td><td>-0.01950746799999999</td><td>0.04354296399999999</td><td>41.71723452399997</td><td>-0.010119192000000003</td><td>209.79717763199974</td><td>0.9791760000000007</td><td>-348.32956718800006 </td><td>-399.25431389200037  </td><td>-399.25978800799976  </td><td>-692.3812035480005     </td><td>-709.1216091640001      </td><td>-709.1186311360004      </td><td>73.06459138399997</td><td>1.6467673438121162</td><td>       </td></tr>\n",
       "<tr><td>maxs   </td><td>349999.0         </td><td>1192.026          </td><td>690.075                      </td><td>1349.351         </td><td>2834.999          </td><td>8.503                 </td><td>4974.979          </td><td>16.69                </td><td>5.684               </td><td>2834.999          </td><td>1852.462          </td><td>19.773                </td><td>1.414                   </td><td>1.0                     </td><td>764.408           </td><td>2.497               </td><td>3.142                </td><td>560.271           </td><td>2.503               </td><td>3.142              </td><td>2842.617         </td><td>3.142                </td><td>2003.976          </td><td>3.0               </td><td>1120.573            </td><td>4.499                </td><td>3.141                </td><td>721.456                </td><td>4.5                     </td><td>3.142                   </td><td>1633.433         </td><td>7.822542545       </td><td>       </td></tr>\n",
       "<tr><td>sigma  </td><td>72168.92798612619</td><td>406.3456467028012 </td><td>35.344885611871845           </td><td>40.82869053241531</td><td>63.655681618336246</td><td>454.4805651106833     </td><td>657.9723021131683 </td><td>453.01987655208717   </td><td>0.7829111186453123  </td><td>22.273493751956497</td><td>115.70611513348778</td><td>0.844742944661397     </td><td>1.193584835775017       </td><td>453.59672120219074      </td><td>22.412080666702128</td><td>1.2140786460280997  </td><td>1.81676304437486     </td><td>22.064922404956224</td><td>1.2649821484873116  </td><td>1.8166112628154705 </td><td>32.89469319196889</td><td>1.8122227019871897   </td><td>126.49950571643997</td><td>0.9774263053922425</td><td>532.9627893583423   </td><td>489.33828601793897   </td><td>489.33388332090385   </td><td>479.8754958453912      </td><td>453.3846240477965       </td><td>453.38901727367033      </td><td>98.01566200825663</td><td>1.875103315448076 </td><td>       </td></tr>\n",
       "<tr><td>zeros  </td><td>0                </td><td>0                 </td><td>3                            </td><td>0                </td><td>41                </td><td>6                     </td><td>0                 </td><td>58                   </td><td>0                   </td><td>39                </td><td>0                 </td><td>0                     </td><td>53                      </td><td>15752                   </td><td>0                 </td><td>0                   </td><td>32                   </td><td>0                 </td><td>35                  </td><td>33                 </td><td>0                </td><td>44                   </td><td>0                 </td><td>99913             </td><td>0                   </td><td>26                   </td><td>19                   </td><td>0                      </td><td>9                       </td><td>10                      </td><td>99913            </td><td>0                 </td><td>       </td></tr>\n",
       "<tr><td>missing</td><td>0                </td><td>0                 </td><td>0                            </td><td>0                </td><td>0                 </td><td>0                     </td><td>0                 </td><td>0                    </td><td>0                   </td><td>0                 </td><td>0                 </td><td>0                     </td><td>0                       </td><td>0                       </td><td>0                 </td><td>0                   </td><td>0                    </td><td>0                 </td><td>0                   </td><td>0                  </td><td>0                </td><td>0                    </td><td>0                 </td><td>0                 </td><td>0                   </td><td>0                    </td><td>0                    </td><td>0                      </td><td>0                       </td><td>0                       </td><td>0                </td><td>0                 </td><td>0      </td></tr>\n",
       "<tr><td>0      </td><td>100000.0         </td><td>138.47            </td><td>51.655                       </td><td>97.827           </td><td>27.98             </td><td>0.91                  </td><td>124.711           </td><td>2.666                </td><td>3.064               </td><td>41.928            </td><td>197.76            </td><td>1.582                 </td><td>1.396                   </td><td>0.2                     </td><td>32.638            </td><td>1.017               </td><td>0.381                </td><td>51.626            </td><td>2.273               </td><td>-2.414             </td><td>16.824           </td><td>-0.277               </td><td>258.733           </td><td>2.0               </td><td>67.435              </td><td>2.15                 </td><td>0.444                </td><td>46.062                 </td><td>1.24                    </td><td>-2.475                  </td><td>113.497          </td><td>0.002653311       </td><td>s      </td></tr>\n",
       "<tr><td>1      </td><td>100001.0         </td><td>160.937           </td><td>68.768                       </td><td>103.235          </td><td>48.146            </td><td>-999.0                </td><td>-999.0            </td><td>-999.0               </td><td>3.473               </td><td>2.078             </td><td>125.157           </td><td>0.879                 </td><td>1.414                   </td><td>-999.0                  </td><td>42.014            </td><td>2.039               </td><td>-3.011               </td><td>36.918            </td><td>0.501               </td><td>0.103              </td><td>44.704           </td><td>-1.916               </td><td>164.546           </td><td>1.0               </td><td>46.226              </td><td>0.725                </td><td>1.158                </td><td>-999.0                 </td><td>-999.0                  </td><td>-999.0                  </td><td>46.226           </td><td>2.233584487       </td><td>b      </td></tr>\n",
       "<tr><td>2      </td><td>100002.0         </td><td>-999.0            </td><td>162.172                      </td><td>125.953          </td><td>35.635            </td><td>-999.0                </td><td>-999.0            </td><td>-999.0               </td><td>3.148               </td><td>9.336             </td><td>197.814           </td><td>3.776                 </td><td>1.414                   </td><td>-999.0                  </td><td>32.154            </td><td>-0.705              </td><td>-2.093               </td><td>121.409           </td><td>-0.953              </td><td>1.052              </td><td>54.283           </td><td>-2.186               </td><td>260.414           </td><td>1.0               </td><td>44.251              </td><td>2.053                </td><td>-2.028               </td><td>-999.0                 </td><td>-999.0                  </td><td>-999.0                  </td><td>44.251           </td><td>2.347388944       </td><td>b      </td></tr>\n",
       "<tr><td>3      </td><td>100003.0         </td><td>143.905           </td><td>81.417                       </td><td>80.943           </td><td>0.414             </td><td>-999.0                </td><td>-999.0            </td><td>-999.0               </td><td>3.31                </td><td>0.414             </td><td>75.968            </td><td>2.354                 </td><td>-1.285                  </td><td>-999.0                  </td><td>22.647            </td><td>-1.655              </td><td>0.01                 </td><td>53.321            </td><td>-0.522              </td><td>-3.1               </td><td>31.082           </td><td>0.06                 </td><td>86.062            </td><td>0.0               </td><td>-999.0              </td><td>-999.0               </td><td>-999.0               </td><td>-999.0                 </td><td>-999.0                  </td><td>-999.0                  </td><td>0.0              </td><td>5.446378212       </td><td>b      </td></tr>\n",
       "<tr><td>4      </td><td>100004.0         </td><td>175.864           </td><td>16.915                       </td><td>134.805          </td><td>16.405            </td><td>-999.0                </td><td>-999.0            </td><td>-999.0               </td><td>3.891               </td><td>16.405            </td><td>57.983            </td><td>1.056                 </td><td>-1.385                  </td><td>-999.0                  </td><td>28.209            </td><td>-2.197              </td><td>-2.231               </td><td>29.774            </td><td>0.798               </td><td>1.569              </td><td>2.723            </td><td>-0.871               </td><td>53.131            </td><td>0.0               </td><td>-999.0              </td><td>-999.0               </td><td>-999.0               </td><td>-999.0                 </td><td>-999.0                  </td><td>-999.0                  </td><td>0.0              </td><td>6.245332687       </td><td>b      </td></tr>\n",
       "<tr><td>5      </td><td>100005.0         </td><td>89.744            </td><td>13.55                        </td><td>59.149           </td><td>116.344           </td><td>2.636                 </td><td>284.584           </td><td>-0.54                </td><td>1.362               </td><td>61.619            </td><td>278.876           </td><td>0.588                 </td><td>0.479                   </td><td>0.975                   </td><td>53.651            </td><td>0.371               </td><td>1.329                </td><td>31.565            </td><td>-0.884              </td><td>1.857              </td><td>40.735           </td><td>2.237                </td><td>282.849           </td><td>3.0               </td><td>90.547              </td><td>-2.412               </td><td>-0.653               </td><td>56.165                 </td><td>0.224                   </td><td>3.106                   </td><td>193.66           </td><td>0.083414031       </td><td>b      </td></tr>\n",
       "<tr><td>6      </td><td>100006.0         </td><td>148.754           </td><td>28.862                       </td><td>107.782          </td><td>106.13            </td><td>0.733                 </td><td>158.359           </td><td>0.113                </td><td>2.941               </td><td>2.545             </td><td>305.967           </td><td>3.371                 </td><td>1.393                   </td><td>0.791                   </td><td>28.85             </td><td>1.113               </td><td>2.409                </td><td>97.24             </td><td>0.675               </td><td>-0.966             </td><td>38.421           </td><td>-1.443               </td><td>294.074           </td><td>2.0               </td><td>123.01              </td><td>0.864                </td><td>1.45                 </td><td>56.867                 </td><td>0.131                   </td><td>-2.767                  </td><td>179.877          </td><td>0.002653311       </td><td>s      </td></tr>\n",
       "<tr><td>7      </td><td>100007.0         </td><td>154.916           </td><td>10.418                       </td><td>94.714           </td><td>29.169            </td><td>-999.0                </td><td>-999.0            </td><td>-999.0               </td><td>2.897               </td><td>1.526             </td><td>138.178           </td><td>0.365                 </td><td>-1.305                  </td><td>-999.0                  </td><td>78.8              </td><td>0.654               </td><td>1.547                </td><td>28.74             </td><td>0.506               </td><td>-1.347             </td><td>22.275           </td><td>-1.761               </td><td>187.299           </td><td>1.0               </td><td>30.638              </td><td>-0.715               </td><td>-1.724               </td><td>-999.0                 </td><td>-999.0                  </td><td>-999.0                  </td><td>30.638           </td><td>0.018636117       </td><td>s      </td></tr>\n",
       "<tr><td>8      </td><td>100008.0         </td><td>105.594           </td><td>50.559                       </td><td>100.989          </td><td>4.288             </td><td>-999.0                </td><td>-999.0            </td><td>-999.0               </td><td>2.904               </td><td>4.288             </td><td>65.333            </td><td>0.675                 </td><td>-1.366                  </td><td>-999.0                  </td><td>39.008            </td><td>2.433               </td><td>-2.532               </td><td>26.325            </td><td>0.21                </td><td>1.884              </td><td>37.791           </td><td>0.024                </td><td>129.804           </td><td>0.0               </td><td>-999.0              </td><td>-999.0               </td><td>-999.0               </td><td>-999.0                 </td><td>-999.0                  </td><td>-999.0                  </td><td>0.0              </td><td>5.296002985       </td><td>b      </td></tr>\n",
       "<tr><td>9      </td><td>100009.0         </td><td>128.053           </td><td>88.941                       </td><td>69.272           </td><td>193.392           </td><td>-999.0                </td><td>-999.0            </td><td>-999.0               </td><td>1.609               </td><td>28.859            </td><td>255.123           </td><td>0.599                 </td><td>0.538                   </td><td>-999.0                  </td><td>54.646            </td><td>-1.533              </td><td>0.416                </td><td>32.742            </td><td>-0.317              </td><td>-0.636             </td><td>132.678          </td><td>0.845                </td><td>294.741           </td><td>1.0               </td><td>167.735             </td><td>-2.767               </td><td>-2.514               </td><td>-999.0                 </td><td>-999.0                  </td><td>-999.0                  </td><td>167.735          </td><td>0.00150187        </td><td>s      </td></tr>\n",
       "</tbody>\n",
       "</table>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "higgs.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "train, valid, test = higgs.split_frame([0.6, 0.2], seed = 2019)\n",
    "higgs_X = higgs.col_names[1: -1]\n",
    "higgs_y = higgs.col_names[-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "deeplearning Model Build progress: |██████████████████████████████████████| 100%\n",
      "Model Details\n",
      "=============\n",
      "H2ODeepLearningEstimator :  Deep Learning\n",
      "Model Key:  higgs_v1\n",
      "\n",
      "\n",
      "ModelMetricsBinomial: deeplearning\n",
      "** Reported on train data. **\n",
      "\n",
      "MSE: 0.02404827265062027\n",
      "RMSE: 0.155075054894784\n",
      "LogLoss: 0.08511327601076424\n",
      "Mean Per-Class Error: 0.027810905187065638\n",
      "AUC: 0.994862989427392\n",
      "pr_auc: 0.9723869853229047\n",
      "Gini: 0.9897259788547841\n",
      "Confusion Matrix (Act/Pred) for max f1 @ threshold = 0.4206674380278053: \n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div style=\"overflow:auto\"><table style=\"width:50%\"><tr><td><b></b></td>\n",
       "<td><b>b</b></td>\n",
       "<td><b>s</b></td>\n",
       "<td><b>Error</b></td>\n",
       "<td><b>Rate</b></td></tr>\n",
       "<tr><td>b</td>\n",
       "<td>6325.0</td>\n",
       "<td>201.0</td>\n",
       "<td>0.0308</td>\n",
       "<td> (201.0/6526.0)</td></tr>\n",
       "<tr><td>s</td>\n",
       "<td>102.0</td>\n",
       "<td>3379.0</td>\n",
       "<td>0.0293</td>\n",
       "<td> (102.0/3481.0)</td></tr>\n",
       "<tr><td>Total</td>\n",
       "<td>6427.0</td>\n",
       "<td>3580.0</td>\n",
       "<td>0.0303</td>\n",
       "<td> (303.0/10007.0)</td></tr></table></div>"
      ],
      "text/plain": [
       "       b     s     Error    Rate\n",
       "-----  ----  ----  -------  ---------------\n",
       "b      6325  201   0.0308   (201.0/6526.0)\n",
       "s      102   3379  0.0293   (102.0/3481.0)\n",
       "Total  6427  3580  0.0303   (303.0/10007.0)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Maximum Metrics: Maximum metrics at their respective thresholds\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div style=\"overflow:auto\"><table style=\"width:50%\"><tr><td><b>metric</b></td>\n",
       "<td><b>threshold</b></td>\n",
       "<td><b>value</b></td>\n",
       "<td><b>idx</b></td></tr>\n",
       "<tr><td>max f1</td>\n",
       "<td>0.4206674</td>\n",
       "<td>0.9570882</td>\n",
       "<td>265.0</td></tr>\n",
       "<tr><td>max f2</td>\n",
       "<td>0.1645395</td>\n",
       "<td>0.9750452</td>\n",
       "<td>329.0</td></tr>\n",
       "<tr><td>max f0point5</td>\n",
       "<td>0.6383996</td>\n",
       "<td>0.9567481</td>\n",
       "<td>203.0</td></tr>\n",
       "<tr><td>max accuracy</td>\n",
       "<td>0.4206674</td>\n",
       "<td>0.9697212</td>\n",
       "<td>265.0</td></tr>\n",
       "<tr><td>max precision</td>\n",
       "<td>0.9990267</td>\n",
       "<td>1.0</td>\n",
       "<td>0.0</td></tr>\n",
       "<tr><td>max recall</td>\n",
       "<td>0.0000030</td>\n",
       "<td>1.0</td>\n",
       "<td>399.0</td></tr>\n",
       "<tr><td>max specificity</td>\n",
       "<td>0.9990267</td>\n",
       "<td>1.0</td>\n",
       "<td>0.0</td></tr>\n",
       "<tr><td>max absolute_mcc</td>\n",
       "<td>0.4206674</td>\n",
       "<td>0.9339222</td>\n",
       "<td>265.0</td></tr>\n",
       "<tr><td>max min_per_class_accuracy</td>\n",
       "<td>0.4258746</td>\n",
       "<td>0.9693534</td>\n",
       "<td>263.0</td></tr>\n",
       "<tr><td>max mean_per_class_accuracy</td>\n",
       "<td>0.2676730</td>\n",
       "<td>0.9721891</td>\n",
       "<td>304.0</td></tr></table></div>"
      ],
      "text/plain": [
       "metric                       threshold    value     idx\n",
       "---------------------------  -----------  --------  -----\n",
       "max f1                       0.420667     0.957088  265\n",
       "max f2                       0.16454      0.975045  329\n",
       "max f0point5                 0.6384       0.956748  203\n",
       "max accuracy                 0.420667     0.969721  265\n",
       "max precision                0.999027     1         0\n",
       "max recall                   3.01779e-06  1         399\n",
       "max specificity              0.999027     1         0\n",
       "max absolute_mcc             0.420667     0.933922  265\n",
       "max min_per_class_accuracy   0.425875     0.969353  263\n",
       "max mean_per_class_accuracy  0.267673     0.972189  304"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Gains/Lift Table: Avg response rate: 34.79 %, avg score: 33.48 %\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div style=\"overflow:auto\"><table style=\"width:50%\"><tr><td><b></b></td>\n",
       "<td><b>group</b></td>\n",
       "<td><b>cumulative_data_fraction</b></td>\n",
       "<td><b>lower_threshold</b></td>\n",
       "<td><b>lift</b></td>\n",
       "<td><b>cumulative_lift</b></td>\n",
       "<td><b>response_rate</b></td>\n",
       "<td><b>score</b></td>\n",
       "<td><b>cumulative_response_rate</b></td>\n",
       "<td><b>cumulative_score</b></td>\n",
       "<td><b>capture_rate</b></td>\n",
       "<td><b>cumulative_capture_rate</b></td>\n",
       "<td><b>gain</b></td>\n",
       "<td><b>cumulative_gain</b></td></tr>\n",
       "<tr><td></td>\n",
       "<td>1</td>\n",
       "<td>0.0100929</td>\n",
       "<td>0.9982218</td>\n",
       "<td>2.8747486</td>\n",
       "<td>2.8747486</td>\n",
       "<td>1.0</td>\n",
       "<td>0.9987904</td>\n",
       "<td>1.0</td>\n",
       "<td>0.9987904</td>\n",
       "<td>0.0290147</td>\n",
       "<td>0.0290147</td>\n",
       "<td>187.4748635</td>\n",
       "<td>187.4748635</td></tr>\n",
       "<tr><td></td>\n",
       "<td>2</td>\n",
       "<td>0.0200859</td>\n",
       "<td>0.9971203</td>\n",
       "<td>2.8747486</td>\n",
       "<td>2.8747486</td>\n",
       "<td>1.0</td>\n",
       "<td>0.9976179</td>\n",
       "<td>1.0</td>\n",
       "<td>0.9982070</td>\n",
       "<td>0.0287274</td>\n",
       "<td>0.0577420</td>\n",
       "<td>187.4748635</td>\n",
       "<td>187.4748635</td></tr>\n",
       "<tr><td></td>\n",
       "<td>3</td>\n",
       "<td>0.0300789</td>\n",
       "<td>0.9960280</td>\n",
       "<td>2.8747486</td>\n",
       "<td>2.8747486</td>\n",
       "<td>1.0</td>\n",
       "<td>0.9965917</td>\n",
       "<td>1.0</td>\n",
       "<td>0.9976704</td>\n",
       "<td>0.0287274</td>\n",
       "<td>0.0864694</td>\n",
       "<td>187.4748635</td>\n",
       "<td>187.4748635</td></tr>\n",
       "<tr><td></td>\n",
       "<td>4</td>\n",
       "<td>0.0400719</td>\n",
       "<td>0.9951239</td>\n",
       "<td>2.8747486</td>\n",
       "<td>2.8747486</td>\n",
       "<td>1.0</td>\n",
       "<td>0.9955700</td>\n",
       "<td>1.0</td>\n",
       "<td>0.9971466</td>\n",
       "<td>0.0287274</td>\n",
       "<td>0.1151968</td>\n",
       "<td>187.4748635</td>\n",
       "<td>187.4748635</td></tr>\n",
       "<tr><td></td>\n",
       "<td>5</td>\n",
       "<td>0.0500650</td>\n",
       "<td>0.9940709</td>\n",
       "<td>2.8747486</td>\n",
       "<td>2.8747486</td>\n",
       "<td>1.0</td>\n",
       "<td>0.9945930</td>\n",
       "<td>1.0</td>\n",
       "<td>0.9966369</td>\n",
       "<td>0.0287274</td>\n",
       "<td>0.1439242</td>\n",
       "<td>187.4748635</td>\n",
       "<td>187.4748635</td></tr>\n",
       "<tr><td></td>\n",
       "<td>6</td>\n",
       "<td>0.1000300</td>\n",
       "<td>0.9877110</td>\n",
       "<td>2.8747486</td>\n",
       "<td>2.8747486</td>\n",
       "<td>1.0</td>\n",
       "<td>0.9912907</td>\n",
       "<td>1.0</td>\n",
       "<td>0.9939665</td>\n",
       "<td>0.1436369</td>\n",
       "<td>0.2875610</td>\n",
       "<td>187.4748635</td>\n",
       "<td>187.4748635</td></tr>\n",
       "<tr><td></td>\n",
       "<td>7</td>\n",
       "<td>0.1499950</td>\n",
       "<td>0.9775083</td>\n",
       "<td>2.8689991</td>\n",
       "<td>2.8728334</td>\n",
       "<td>0.998</td>\n",
       "<td>0.9829158</td>\n",
       "<td>0.9993338</td>\n",
       "<td>0.9902854</td>\n",
       "<td>0.1433496</td>\n",
       "<td>0.4309107</td>\n",
       "<td>186.8999138</td>\n",
       "<td>187.2833413</td></tr>\n",
       "<tr><td></td>\n",
       "<td>8</td>\n",
       "<td>0.2000600</td>\n",
       "<td>0.9579274</td>\n",
       "<td>2.8403205</td>\n",
       "<td>2.8646971</td>\n",
       "<td>0.9880240</td>\n",
       "<td>0.9685857</td>\n",
       "<td>0.9965035</td>\n",
       "<td>0.9848550</td>\n",
       "<td>0.1422005</td>\n",
       "<td>0.5731112</td>\n",
       "<td>184.0320508</td>\n",
       "<td>186.4697067</td></tr>\n",
       "<tr><td></td>\n",
       "<td>9</td>\n",
       "<td>0.2999900</td>\n",
       "<td>0.8265363</td>\n",
       "<td>2.7108880</td>\n",
       "<td>2.8134615</td>\n",
       "<td>0.943</td>\n",
       "<td>0.9111884</td>\n",
       "<td>0.9786809</td>\n",
       "<td>0.9603159</td>\n",
       "<td>0.2708992</td>\n",
       "<td>0.8440103</td>\n",
       "<td>171.0887963</td>\n",
       "<td>181.3461523</td></tr>\n",
       "<tr><td></td>\n",
       "<td>10</td>\n",
       "<td>0.4000200</td>\n",
       "<td>0.0349816</td>\n",
       "<td>1.5307103</td>\n",
       "<td>2.4926936</td>\n",
       "<td>0.5324675</td>\n",
       "<td>0.4626621</td>\n",
       "<td>0.8670997</td>\n",
       "<td>0.8358713</td>\n",
       "<td>0.1531169</td>\n",
       "<td>0.9971273</td>\n",
       "<td>53.0710312</td>\n",
       "<td>149.2693608</td></tr>\n",
       "<tr><td></td>\n",
       "<td>11</td>\n",
       "<td>0.5000500</td>\n",
       "<td>0.0000001</td>\n",
       "<td>0.0287188</td>\n",
       "<td>1.9998002</td>\n",
       "<td>0.0099900</td>\n",
       "<td>0.0039724</td>\n",
       "<td>0.6956435</td>\n",
       "<td>0.6694583</td>\n",
       "<td>0.0028727</td>\n",
       "<td>1.0</td>\n",
       "<td>-97.1281232</td>\n",
       "<td>99.9800160</td></tr>\n",
       "<tr><td></td>\n",
       "<td>12</td>\n",
       "<td>0.5999800</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.0</td>\n",
       "<td>1.6667222</td>\n",
       "<td>0.0</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.5797801</td>\n",
       "<td>0.5579563</td>\n",
       "<td>0.0</td>\n",
       "<td>1.0</td>\n",
       "<td>-100.0</td>\n",
       "<td>66.6722185</td></tr>\n",
       "<tr><td></td>\n",
       "<td>13</td>\n",
       "<td>0.7000100</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.0</td>\n",
       "<td>1.4285510</td>\n",
       "<td>0.0</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.4969308</td>\n",
       "<td>0.4782255</td>\n",
       "<td>0.0</td>\n",
       "<td>1.0</td>\n",
       "<td>-100.0</td>\n",
       "<td>42.8551035</td></tr>\n",
       "<tr><td></td>\n",
       "<td>14</td>\n",
       "<td>0.7999400</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.0</td>\n",
       "<td>1.2500937</td>\n",
       "<td>0.0</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.4348532</td>\n",
       "<td>0.4184846</td>\n",
       "<td>0.0</td>\n",
       "<td>1.0</td>\n",
       "<td>-100.0</td>\n",
       "<td>25.0093691</td></tr>\n",
       "<tr><td></td>\n",
       "<td>15</td>\n",
       "<td>0.8999700</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.0</td>\n",
       "<td>1.1111481</td>\n",
       "<td>0.0</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.3865201</td>\n",
       "<td>0.3719708</td>\n",
       "<td>0.0</td>\n",
       "<td>1.0</td>\n",
       "<td>-100.0</td>\n",
       "<td>11.1148123</td></tr>\n",
       "<tr><td></td>\n",
       "<td>16</td>\n",
       "<td>1.0</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.0</td>\n",
       "<td>1.0</td>\n",
       "<td>0.0</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.3478565</td>\n",
       "<td>0.3347626</td>\n",
       "<td>0.0</td>\n",
       "<td>1.0</td>\n",
       "<td>-100.0</td>\n",
       "<td>0.0</td></tr></table></div>"
      ],
      "text/plain": [
       "    group    cumulative_data_fraction    lower_threshold    lift       cumulative_lift    response_rate    score        cumulative_response_rate    cumulative_score    capture_rate    cumulative_capture_rate    gain      cumulative_gain\n",
       "--  -------  --------------------------  -----------------  ---------  -----------------  ---------------  -----------  --------------------------  ------------------  --------------  -------------------------  --------  -----------------\n",
       "    1        0.0100929                   0.998222           2.87475    2.87475            1                0.99879      1                           0.99879             0.0290147       0.0290147                  187.475   187.475\n",
       "    2        0.0200859                   0.99712            2.87475    2.87475            1                0.997618     1                           0.998207            0.0287274       0.057742                   187.475   187.475\n",
       "    3        0.0300789                   0.996028           2.87475    2.87475            1                0.996592     1                           0.99767             0.0287274       0.0864694                  187.475   187.475\n",
       "    4        0.0400719                   0.995124           2.87475    2.87475            1                0.99557      1                           0.997147            0.0287274       0.115197                   187.475   187.475\n",
       "    5        0.050065                    0.994071           2.87475    2.87475            1                0.994593     1                           0.996637            0.0287274       0.143924                   187.475   187.475\n",
       "    6        0.10003                     0.987711           2.87475    2.87475            1                0.991291     1                           0.993966            0.143637        0.287561                   187.475   187.475\n",
       "    7        0.149995                    0.977508           2.869      2.87283            0.998            0.982916     0.999334                    0.990285            0.14335         0.430911                   186.9     187.283\n",
       "    8        0.20006                     0.957927           2.84032    2.8647             0.988024         0.968586     0.996503                    0.984855            0.142201        0.573111                   184.032   186.47\n",
       "    9        0.29999                     0.826536           2.71089    2.81346            0.943            0.911188     0.978681                    0.960316            0.270899        0.84401                    171.089   181.346\n",
       "    10       0.40002                     0.0349816          1.53071    2.49269            0.532468         0.462662     0.8671                      0.835871            0.153117        0.997127                   53.071    149.269\n",
       "    11       0.50005                     8.92217e-08        0.0287188  1.9998             0.00999001       0.00397243   0.695643                    0.669458            0.00287274      1                          -97.1281  99.98\n",
       "    12       0.59998                     1.88023e-11        0          1.66672            0                9.39557e-09  0.57978                     0.557956            0               1                          -100      66.6722\n",
       "    13       0.70001                     4.07522e-14        0          1.42855            0                2.87776e-12  0.496931                    0.478225            0               1                          -100      42.8551\n",
       "    14       0.79994                     8.76828e-19        0          1.25009            0                4.70211e-15  0.434853                    0.418485            0               1                          -100      25.0094\n",
       "    15       0.89997                     8.88132e-30        0          1.11115            0                3.49238e-20  0.38652                     0.371971            0               1                          -100      11.1148\n",
       "    16       1                           3.87111e-44        0          1                  0                6.94995e-31  0.347857                    0.334763            0               1                          -100      0"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n",
      "ModelMetricsBinomial: deeplearning\n",
      "** Reported on validation data. **\n",
      "\n",
      "MSE: 0.026016159472311878\n",
      "RMSE: 0.16129525557905253\n",
      "LogLoss: 0.08993662727968907\n",
      "Mean Per-Class Error: 0.030066173141032437\n",
      "AUC: 0.9937681564751435\n",
      "pr_auc: 0.9729939027304094\n",
      "Gini: 0.987536312950287\n",
      "Confusion Matrix (Act/Pred) for max f1 @ threshold = 0.36744600566811214: \n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div style=\"overflow:auto\"><table style=\"width:50%\"><tr><td><b></b></td>\n",
       "<td><b>b</b></td>\n",
       "<td><b>s</b></td>\n",
       "<td><b>Error</b></td>\n",
       "<td><b>Rate</b></td></tr>\n",
       "<tr><td>b</td>\n",
       "<td>31642.0</td>\n",
       "<td>1242.0</td>\n",
       "<td>0.0378</td>\n",
       "<td> (1242.0/32884.0)</td></tr>\n",
       "<tr><td>s</td>\n",
       "<td>401.0</td>\n",
       "<td>16634.0</td>\n",
       "<td>0.0235</td>\n",
       "<td> (401.0/17035.0)</td></tr>\n",
       "<tr><td>Total</td>\n",
       "<td>32043.0</td>\n",
       "<td>17876.0</td>\n",
       "<td>0.0329</td>\n",
       "<td> (1643.0/49919.0)</td></tr></table></div>"
      ],
      "text/plain": [
       "       b      s      Error    Rate\n",
       "-----  -----  -----  -------  ----------------\n",
       "b      31642  1242   0.0378   (1242.0/32884.0)\n",
       "s      401    16634  0.0235   (401.0/17035.0)\n",
       "Total  32043  17876  0.0329   (1643.0/49919.0)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Maximum Metrics: Maximum metrics at their respective thresholds\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div style=\"overflow:auto\"><table style=\"width:50%\"><tr><td><b>metric</b></td>\n",
       "<td><b>threshold</b></td>\n",
       "<td><b>value</b></td>\n",
       "<td><b>idx</b></td></tr>\n",
       "<tr><td>max f1</td>\n",
       "<td>0.3674460</td>\n",
       "<td>0.9529375</td>\n",
       "<td>277.0</td></tr>\n",
       "<tr><td>max f2</td>\n",
       "<td>0.1978880</td>\n",
       "<td>0.9728290</td>\n",
       "<td>323.0</td></tr>\n",
       "<tr><td>max f0point5</td>\n",
       "<td>0.6831810</td>\n",
       "<td>0.9503680</td>\n",
       "<td>180.0</td></tr>\n",
       "<tr><td>max accuracy</td>\n",
       "<td>0.3674460</td>\n",
       "<td>0.9670867</td>\n",
       "<td>277.0</td></tr>\n",
       "<tr><td>max precision</td>\n",
       "<td>0.9990687</td>\n",
       "<td>1.0</td>\n",
       "<td>0.0</td></tr>\n",
       "<tr><td>max recall</td>\n",
       "<td>0.0000032</td>\n",
       "<td>1.0</td>\n",
       "<td>399.0</td></tr>\n",
       "<tr><td>max specificity</td>\n",
       "<td>0.9990687</td>\n",
       "<td>1.0</td>\n",
       "<td>0.0</td></tr>\n",
       "<tr><td>max absolute_mcc</td>\n",
       "<td>0.3674460</td>\n",
       "<td>0.9282914</td>\n",
       "<td>277.0</td></tr>\n",
       "<tr><td>max min_per_class_accuracy</td>\n",
       "<td>0.4384682</td>\n",
       "<td>0.9665982</td>\n",
       "<td>256.0</td></tr>\n",
       "<tr><td>max mean_per_class_accuracy</td>\n",
       "<td>0.2979196</td>\n",
       "<td>0.9699338</td>\n",
       "<td>295.0</td></tr></table></div>"
      ],
      "text/plain": [
       "metric                       threshold    value     idx\n",
       "---------------------------  -----------  --------  -----\n",
       "max f1                       0.367446     0.952937  277\n",
       "max f2                       0.197888     0.972829  323\n",
       "max f0point5                 0.683181     0.950368  180\n",
       "max accuracy                 0.367446     0.967087  277\n",
       "max precision                0.999069     1         0\n",
       "max recall                   3.19782e-06  1         399\n",
       "max specificity              0.999069     1         0\n",
       "max absolute_mcc             0.367446     0.928291  277\n",
       "max min_per_class_accuracy   0.438468     0.966598  256\n",
       "max mean_per_class_accuracy  0.29792      0.969934  295"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Gains/Lift Table: Avg response rate: 34.13 %, avg score: 32.87 %\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div style=\"overflow:auto\"><table style=\"width:50%\"><tr><td><b></b></td>\n",
       "<td><b>group</b></td>\n",
       "<td><b>cumulative_data_fraction</b></td>\n",
       "<td><b>lower_threshold</b></td>\n",
       "<td><b>lift</b></td>\n",
       "<td><b>cumulative_lift</b></td>\n",
       "<td><b>response_rate</b></td>\n",
       "<td><b>score</b></td>\n",
       "<td><b>cumulative_response_rate</b></td>\n",
       "<td><b>cumulative_score</b></td>\n",
       "<td><b>capture_rate</b></td>\n",
       "<td><b>cumulative_capture_rate</b></td>\n",
       "<td><b>gain</b></td>\n",
       "<td><b>cumulative_gain</b></td></tr>\n",
       "<tr><td></td>\n",
       "<td>1</td>\n",
       "<td>0.0100162</td>\n",
       "<td>0.9980942</td>\n",
       "<td>2.9245179</td>\n",
       "<td>2.9245179</td>\n",
       "<td>0.998</td>\n",
       "<td>0.9987153</td>\n",
       "<td>0.998</td>\n",
       "<td>0.9987153</td>\n",
       "<td>0.0292926</td>\n",
       "<td>0.0292926</td>\n",
       "<td>192.4517875</td>\n",
       "<td>192.4517875</td></tr>\n",
       "<tr><td></td>\n",
       "<td>2</td>\n",
       "<td>0.0200124</td>\n",
       "<td>0.9971116</td>\n",
       "<td>2.9303786</td>\n",
       "<td>2.9274453</td>\n",
       "<td>1.0</td>\n",
       "<td>0.9976024</td>\n",
       "<td>0.9989990</td>\n",
       "<td>0.9981594</td>\n",
       "<td>0.0292926</td>\n",
       "<td>0.0585853</td>\n",
       "<td>193.0378632</td>\n",
       "<td>192.7445320</td></tr>\n",
       "<tr><td></td>\n",
       "<td>3</td>\n",
       "<td>0.0300086</td>\n",
       "<td>0.9960895</td>\n",
       "<td>2.9245061</td>\n",
       "<td>2.9264662</td>\n",
       "<td>0.9979960</td>\n",
       "<td>0.9965968</td>\n",
       "<td>0.9986649</td>\n",
       "<td>0.9976389</td>\n",
       "<td>0.0292339</td>\n",
       "<td>0.0878192</td>\n",
       "<td>192.4506130</td>\n",
       "<td>192.6466244</td></tr>\n",
       "<tr><td></td>\n",
       "<td>4</td>\n",
       "<td>0.0400048</td>\n",
       "<td>0.9951231</td>\n",
       "<td>2.9245061</td>\n",
       "<td>2.9259765</td>\n",
       "<td>0.9979960</td>\n",
       "<td>0.9956007</td>\n",
       "<td>0.9984977</td>\n",
       "<td>0.9971296</td>\n",
       "<td>0.0292339</td>\n",
       "<td>0.1170531</td>\n",
       "<td>192.4506130</td>\n",
       "<td>192.5976461</td></tr>\n",
       "<tr><td></td>\n",
       "<td>5</td>\n",
       "<td>0.0500010</td>\n",
       "<td>0.9939411</td>\n",
       "<td>2.9127611</td>\n",
       "<td>2.9233345</td>\n",
       "<td>0.9939880</td>\n",
       "<td>0.9945198</td>\n",
       "<td>0.9975962</td>\n",
       "<td>0.9966078</td>\n",
       "<td>0.0291165</td>\n",
       "<td>0.1461697</td>\n",
       "<td>191.2761125</td>\n",
       "<td>192.3334453</td></tr>\n",
       "<tr><td></td>\n",
       "<td>6</td>\n",
       "<td>0.1000020</td>\n",
       "<td>0.9864800</td>\n",
       "<td>2.9186383</td>\n",
       "<td>2.9209864</td>\n",
       "<td>0.9959936</td>\n",
       "<td>0.9904234</td>\n",
       "<td>0.9967949</td>\n",
       "<td>0.9935156</td>\n",
       "<td>0.1459348</td>\n",
       "<td>0.2921045</td>\n",
       "<td>191.8638333</td>\n",
       "<td>192.0986393</td></tr>\n",
       "<tr><td></td>\n",
       "<td>7</td>\n",
       "<td>0.1500030</td>\n",
       "<td>0.9740056</td>\n",
       "<td>2.9033759</td>\n",
       "<td>2.9151162</td>\n",
       "<td>0.9907853</td>\n",
       "<td>0.9808022</td>\n",
       "<td>0.9947917</td>\n",
       "<td>0.9892778</td>\n",
       "<td>0.1451717</td>\n",
       "<td>0.4372762</td>\n",
       "<td>190.3375945</td>\n",
       "<td>191.5116244</td></tr>\n",
       "<tr><td></td>\n",
       "<td>8</td>\n",
       "<td>0.2000040</td>\n",
       "<td>0.9517799</td>\n",
       "<td>2.8693291</td>\n",
       "<td>2.9036695</td>\n",
       "<td>0.9791667</td>\n",
       "<td>0.9639189</td>\n",
       "<td>0.9908854</td>\n",
       "<td>0.9829381</td>\n",
       "<td>0.1434693</td>\n",
       "<td>0.5807455</td>\n",
       "<td>186.9329077</td>\n",
       "<td>190.3669452</td></tr>\n",
       "<tr><td></td>\n",
       "<td>9</td>\n",
       "<td>0.3000060</td>\n",
       "<td>0.7895148</td>\n",
       "<td>2.7343156</td>\n",
       "<td>2.8472182</td>\n",
       "<td>0.9330929</td>\n",
       "<td>0.8934857</td>\n",
       "<td>0.9716213</td>\n",
       "<td>0.9531206</td>\n",
       "<td>0.2734370</td>\n",
       "<td>0.8541826</td>\n",
       "<td>173.4315639</td>\n",
       "<td>184.7218181</td></tr>\n",
       "<tr><td></td>\n",
       "<td>10</td>\n",
       "<td>0.4000080</td>\n",
       "<td>0.0295441</td>\n",
       "<td>1.4446438</td>\n",
       "<td>2.4965746</td>\n",
       "<td>0.4929888</td>\n",
       "<td>0.4241740</td>\n",
       "<td>0.8519631</td>\n",
       "<td>0.8208840</td>\n",
       "<td>0.1444673</td>\n",
       "<td>0.9986498</td>\n",
       "<td>44.4643793</td>\n",
       "<td>149.6574584</td></tr>\n",
       "<tr><td></td>\n",
       "<td>11</td>\n",
       "<td>0.5000100</td>\n",
       "<td>0.0000001</td>\n",
       "<td>0.0135013</td>\n",
       "<td>1.9999599</td>\n",
       "<td>0.0046074</td>\n",
       "<td>0.0033149</td>\n",
       "<td>0.6824920</td>\n",
       "<td>0.6573701</td>\n",
       "<td>0.0013502</td>\n",
       "<td>1.0</td>\n",
       "<td>-98.6498656</td>\n",
       "<td>99.9959936</td></tr>\n",
       "<tr><td></td>\n",
       "<td>12</td>\n",
       "<td>0.5999920</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.0</td>\n",
       "<td>1.6666889</td>\n",
       "<td>0.0</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.5687623</td>\n",
       "<td>0.5478267</td>\n",
       "<td>0.0</td>\n",
       "<td>1.0</td>\n",
       "<td>-100.0</td>\n",
       "<td>66.6688925</td></tr>\n",
       "<tr><td></td>\n",
       "<td>13</td>\n",
       "<td>0.6999940</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.0</td>\n",
       "<td>1.4285837</td>\n",
       "<td>0.0</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.4875082</td>\n",
       "<td>0.4695635</td>\n",
       "<td>0.0</td>\n",
       "<td>1.0</td>\n",
       "<td>-100.0</td>\n",
       "<td>42.8583693</td></tr>\n",
       "<tr><td></td>\n",
       "<td>14</td>\n",
       "<td>0.7999960</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.0</td>\n",
       "<td>1.2500063</td>\n",
       "<td>0.0</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.4265682</td>\n",
       "<td>0.4108666</td>\n",
       "<td>0.0</td>\n",
       "<td>1.0</td>\n",
       "<td>-100.0</td>\n",
       "<td>25.0006260</td></tr>\n",
       "<tr><td></td>\n",
       "<td>15</td>\n",
       "<td>0.8999980</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.0</td>\n",
       "<td>1.1111136</td>\n",
       "<td>0.0</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.3791707</td>\n",
       "<td>0.3652138</td>\n",
       "<td>0.0</td>\n",
       "<td>1.0</td>\n",
       "<td>-100.0</td>\n",
       "<td>11.1113584</td></tr>\n",
       "<tr><td></td>\n",
       "<td>16</td>\n",
       "<td>1.0</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.0</td>\n",
       "<td>1.0</td>\n",
       "<td>0.0</td>\n",
       "<td>0.0000000</td>\n",
       "<td>0.3412528</td>\n",
       "<td>0.3286917</td>\n",
       "<td>0.0</td>\n",
       "<td>1.0</td>\n",
       "<td>-100.0</td>\n",
       "<td>0.0</td></tr></table></div>"
      ],
      "text/plain": [
       "    group    cumulative_data_fraction    lower_threshold    lift       cumulative_lift    response_rate    score        cumulative_response_rate    cumulative_score    capture_rate    cumulative_capture_rate    gain      cumulative_gain\n",
       "--  -------  --------------------------  -----------------  ---------  -----------------  ---------------  -----------  --------------------------  ------------------  --------------  -------------------------  --------  -----------------\n",
       "    1        0.0100162                   0.998094           2.92452    2.92452            0.998            0.998715     0.998                       0.998715            0.0292926       0.0292926                  192.452   192.452\n",
       "    2        0.0200124                   0.997112           2.93038    2.92745            1                0.997602     0.998999                    0.998159            0.0292926       0.0585853                  193.038   192.745\n",
       "    3        0.0300086                   0.996089           2.92451    2.92647            0.997996         0.996597     0.998665                    0.997639            0.0292339       0.0878192                  192.451   192.647\n",
       "    4        0.0400048                   0.995123           2.92451    2.92598            0.997996         0.995601     0.998498                    0.99713             0.0292339       0.117053                   192.451   192.598\n",
       "    5        0.050001                    0.993941           2.91276    2.92333            0.993988         0.99452      0.997596                    0.996608            0.0291165       0.14617                    191.276   192.333\n",
       "    6        0.100002                    0.98648            2.91864    2.92099            0.995994         0.990423     0.996795                    0.993516            0.145935        0.292104                   191.864   192.099\n",
       "    7        0.150003                    0.974006           2.90338    2.91512            0.990785         0.980802     0.994792                    0.989278            0.145172        0.437276                   190.338   191.512\n",
       "    8        0.200004                    0.95178            2.86933    2.90367            0.979167         0.963919     0.990885                    0.982938            0.143469        0.580746                   186.933   190.367\n",
       "    9        0.300006                    0.789515           2.73432    2.84722            0.933093         0.893486     0.971621                    0.953121            0.273437        0.854183                   173.432   184.722\n",
       "    10       0.400008                    0.0295441          1.44464    2.49657            0.492989         0.424174     0.851963                    0.820884            0.144467        0.99865                    44.4644   149.657\n",
       "    11       0.50001                     7.68972e-08        0.0135013  1.99996            0.00460737       0.00331488   0.682492                    0.65737             0.00135016      1                          -98.6499  99.996\n",
       "    12       0.599992                    1.63447e-11        0          1.66669            0                7.61458e-09  0.568762                    0.547827            0               1                          -100      66.6689\n",
       "    13       0.699994                    4.71079e-14        0          1.42858            0                2.67017e-12  0.487508                    0.469564            0               1                          -100      42.8584\n",
       "    14       0.799996                    1.31306e-18        0          1.25001            0                5.3433e-15   0.426568                    0.410867            0               1                          -100      25.0006\n",
       "    15       0.899998                    8.35117e-30        0          1.11111            0                5.71186e-20  0.379171                    0.365214            0               1                          -100      11.1114\n",
       "    16       1                           3.9257e-46         0          1                  0                6.74058e-31  0.341253                    0.328692            0               1                          -100      0"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Scoring History: \n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div style=\"overflow:auto\"><table style=\"width:50%\"><tr><td><b></b></td>\n",
       "<td><b>timestamp</b></td>\n",
       "<td><b>duration</b></td>\n",
       "<td><b>training_speed</b></td>\n",
       "<td><b>epochs</b></td>\n",
       "<td><b>iterations</b></td>\n",
       "<td><b>samples</b></td>\n",
       "<td><b>training_rmse</b></td>\n",
       "<td><b>training_logloss</b></td>\n",
       "<td><b>training_r2</b></td>\n",
       "<td><b>training_auc</b></td>\n",
       "<td><b>training_pr_auc</b></td>\n",
       "<td><b>training_lift</b></td>\n",
       "<td><b>training_classification_error</b></td>\n",
       "<td><b>validation_rmse</b></td>\n",
       "<td><b>validation_logloss</b></td>\n",
       "<td><b>validation_r2</b></td>\n",
       "<td><b>validation_auc</b></td>\n",
       "<td><b>validation_pr_auc</b></td>\n",
       "<td><b>validation_lift</b></td>\n",
       "<td><b>validation_classification_error</b></td></tr>\n",
       "<tr><td></td>\n",
       "<td>2019-02-26 17:27:09</td>\n",
       "<td> 0.000 sec</td>\n",
       "<td>None</td>\n",
       "<td>0.0</td>\n",
       "<td>0</td>\n",
       "<td>0.0</td>\n",
       "<td>nan</td>\n",
       "<td>nan</td>\n",
       "<td>nan</td>\n",
       "<td>nan</td>\n",
       "<td>nan</td>\n",
       "<td>nan</td>\n",
       "<td>nan</td>\n",
       "<td>nan</td>\n",
       "<td>nan</td>\n",
       "<td>nan</td>\n",
       "<td>nan</td>\n",
       "<td>nan</td>\n",
       "<td>nan</td>\n",
       "<td>nan</td></tr>\n",
       "<tr><td></td>\n",
       "<td>2019-02-26 17:27:13</td>\n",
       "<td> 5.906 sec</td>\n",
       "<td>4150 obs/sec</td>\n",
       "<td>0.1002363</td>\n",
       "<td>1</td>\n",
       "<td>15059.0</td>\n",
       "<td>0.1930136</td>\n",
       "<td>0.1371572</td>\n",
       "<td>0.8357776</td>\n",
       "<td>0.9889585</td>\n",
       "<td>0.8810298</td>\n",
       "<td>2.8462858</td>\n",
       "<td>0.0465674</td>\n",
       "<td>0.2021198</td>\n",
       "<td>0.1482201</td>\n",
       "<td>0.8182716</td>\n",
       "<td>0.9873887</td>\n",
       "<td>0.8555109</td>\n",
       "<td>2.9245179</td>\n",
       "<td>0.0521044</td></tr>\n",
       "<tr><td></td>\n",
       "<td>2019-02-26 17:27:33</td>\n",
       "<td>25.296 sec</td>\n",
       "<td>7002 obs/sec</td>\n",
       "<td>1.0000466</td>\n",
       "<td>10</td>\n",
       "<td>150242.0</td>\n",
       "<td>0.1550751</td>\n",
       "<td>0.0851133</td>\n",
       "<td>0.8939915</td>\n",
       "<td>0.9948630</td>\n",
       "<td>0.9723870</td>\n",
       "<td>2.8747486</td>\n",
       "<td>0.0302788</td>\n",
       "<td>0.1612953</td>\n",
       "<td>0.0899366</td>\n",
       "<td>0.8842694</td>\n",
       "<td>0.9937682</td>\n",
       "<td>0.9729939</td>\n",
       "<td>2.9245179</td>\n",
       "<td>0.0329133</td></tr></table></div>"
      ],
      "text/plain": [
       "    timestamp            duration    training_speed    epochs    iterations    samples    training_rmse    training_logloss    training_r2    training_auc    training_pr_auc    training_lift    training_classification_error    validation_rmse    validation_logloss    validation_r2    validation_auc    validation_pr_auc    validation_lift    validation_classification_error\n",
       "--  -------------------  ----------  ----------------  --------  ------------  ---------  ---------------  ------------------  -------------  --------------  -----------------  ---------------  -------------------------------  -----------------  --------------------  ---------------  ----------------  -------------------  -----------------  ---------------------------------\n",
       "    2019-02-26 17:27:09  0.000 sec                     0         0             0          nan              nan                 nan            nan             nan                nan              nan                              nan                nan                   nan              nan               nan                  nan                nan\n",
       "    2019-02-26 17:27:13  5.906 sec   4150 obs/sec      0.100236  1             15059      0.193014         0.137157            0.835778       0.988959        0.88103            2.84629          0.0465674                        0.20212            0.14822               0.818272         0.987389          0.855511             2.92452            0.0521044\n",
       "    2019-02-26 17:27:33  25.296 sec  7002 obs/sec      1.00005   10            150242     0.155075         0.0851133           0.893992       0.994863        0.972387           2.87475          0.0302788                        0.161295           0.0899366             0.884269         0.993768          0.972994             2.92452            0.0329133"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Variable Importances: \n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div style=\"overflow:auto\"><table style=\"width:50%\"><tr><td><b>variable</b></td>\n",
       "<td><b>relative_importance</b></td>\n",
       "<td><b>scaled_importance</b></td>\n",
       "<td><b>percentage</b></td></tr>\n",
       "<tr><td>Weight</td>\n",
       "<td>1.0</td>\n",
       "<td>1.0</td>\n",
       "<td>0.1286466</td></tr>\n",
       "<tr><td>DER_mass_vis</td>\n",
       "<td>0.3377770</td>\n",
       "<td>0.3377770</td>\n",
       "<td>0.0434539</td></tr>\n",
       "<tr><td>DER_mass_MMC</td>\n",
       "<td>0.2808760</td>\n",
       "<td>0.2808760</td>\n",
       "<td>0.0361337</td></tr>\n",
       "<tr><td>PRI_jet_leading_pt</td>\n",
       "<td>0.2795483</td>\n",
       "<td>0.2795483</td>\n",
       "<td>0.0359629</td></tr>\n",
       "<tr><td>PRI_jet_leading_phi</td>\n",
       "<td>0.2575277</td>\n",
       "<td>0.2575277</td>\n",
       "<td>0.0331301</td></tr>\n",
       "<tr><td>---</td>\n",
       "<td>---</td>\n",
       "<td>---</td>\n",
       "<td>---</td></tr>\n",
       "<tr><td>PRI_lep_eta</td>\n",
       "<td>0.1882909</td>\n",
       "<td>0.1882909</td>\n",
       "<td>0.0242230</td></tr>\n",
       "<tr><td>PRI_tau_eta</td>\n",
       "<td>0.1794623</td>\n",
       "<td>0.1794623</td>\n",
       "<td>0.0230872</td></tr>\n",
       "<tr><td>PRI_met_phi</td>\n",
       "<td>0.1714218</td>\n",
       "<td>0.1714218</td>\n",
       "<td>0.0220528</td></tr>\n",
       "<tr><td>PRI_tau_phi</td>\n",
       "<td>0.1581337</td>\n",
       "<td>0.1581337</td>\n",
       "<td>0.0203434</td></tr>\n",
       "<tr><td>PRI_lep_phi</td>\n",
       "<td>0.1560907</td>\n",
       "<td>0.1560907</td>\n",
       "<td>0.0200805</td></tr></table></div>"
      ],
      "text/plain": [
       "variable             relative_importance    scaled_importance    percentage\n",
       "-------------------  ---------------------  -------------------  --------------------\n",
       "Weight               1.0                    1.0                  0.12864661827038645\n",
       "DER_mass_vis         0.33777695894241333    0.33777695894241333  0.043453863497596654\n",
       "DER_mass_MMC         0.2808759808540344     0.2808759808540344   0.036133745090249345\n",
       "PRI_jet_leading_pt   0.2795482575893402     0.2795482575893402   0.03596293798224752\n",
       "PRI_jet_leading_phi  0.2575276792049408     0.2575276792049408   0.03313006504073656\n",
       "---                  ---                    ---                  ---\n",
       "PRI_lep_eta          0.18829086422920227    0.18829086422920227  0.02422298293429535\n",
       "PRI_tau_eta          0.17946234345436096    0.17946234345436096  0.023087223592282165\n",
       "PRI_met_phi          0.1714218407869339     0.1714218407869339   0.02205284011492365\n",
       "PRI_tau_phi          0.15813374519348145    0.15813374519348145  0.020343371553572367\n",
       "PRI_lep_phi          0.1560906618833542     0.1560906618833542   0.02008053579487983"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "See the whole table with table.as_data_frame()\n",
      "\n"
     ]
    }
   ],
   "source": [
    "higgs_model_v1 = H2ODeepLearningEstimator(model_id = 'higgs_v1', epochs = 1, variable_importances = True)\n",
    "higgs_model_v1.train(higgs_X, higgs_y, training_frame = train, validation_frame = valid)\n",
    "print(higgs_model_v1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(31, 4)\n"
     ]
    }
   ],
   "source": [
    "var_df = pd.DataFrame(higgs_model_v1.varimp(), columns = ['Variable', 'Relative Importance', 'Scaled Importance', 'Percentage'])\n",
    "print(var_df.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Variable</th>\n",
       "      <th>Relative Importance</th>\n",
       "      <th>Scaled Importance</th>\n",
       "      <th>Percentage</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Weight</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.128647</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>DER_mass_vis</td>\n",
       "      <td>0.337777</td>\n",
       "      <td>0.337777</td>\n",
       "      <td>0.043454</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>DER_mass_MMC</td>\n",
       "      <td>0.280876</td>\n",
       "      <td>0.280876</td>\n",
       "      <td>0.036134</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>PRI_jet_leading_pt</td>\n",
       "      <td>0.279548</td>\n",
       "      <td>0.279548</td>\n",
       "      <td>0.035963</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>PRI_jet_leading_phi</td>\n",
       "      <td>0.257528</td>\n",
       "      <td>0.257528</td>\n",
       "      <td>0.033130</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>DER_deltar_tau_lep</td>\n",
       "      <td>0.254214</td>\n",
       "      <td>0.254214</td>\n",
       "      <td>0.032704</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>PRI_jet_subleading_eta</td>\n",
       "      <td>0.243620</td>\n",
       "      <td>0.243620</td>\n",
       "      <td>0.031341</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>PRI_jet_all_pt</td>\n",
       "      <td>0.243580</td>\n",
       "      <td>0.243580</td>\n",
       "      <td>0.031336</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>DER_sum_pt</td>\n",
       "      <td>0.241416</td>\n",
       "      <td>0.241416</td>\n",
       "      <td>0.031057</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>DER_deltaeta_jet_jet</td>\n",
       "      <td>0.240516</td>\n",
       "      <td>0.240516</td>\n",
       "      <td>0.030942</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 Variable  Relative Importance  Scaled Importance  Percentage\n",
       "0                  Weight             1.000000           1.000000    0.128647\n",
       "1            DER_mass_vis             0.337777           0.337777    0.043454\n",
       "2            DER_mass_MMC             0.280876           0.280876    0.036134\n",
       "3      PRI_jet_leading_pt             0.279548           0.279548    0.035963\n",
       "4     PRI_jet_leading_phi             0.257528           0.257528    0.033130\n",
       "5      DER_deltar_tau_lep             0.254214           0.254214    0.032704\n",
       "6  PRI_jet_subleading_eta             0.243620           0.243620    0.031341\n",
       "7          PRI_jet_all_pt             0.243580           0.243580    0.031336\n",
       "8              DER_sum_pt             0.241416           0.241416    0.031057\n",
       "9    DER_deltaeta_jet_jet             0.240516           0.240516    0.030942"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "var_df.head(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>timestamp</th>\n",
       "      <th>duration</th>\n",
       "      <th>training_speed</th>\n",
       "      <th>epochs</th>\n",
       "      <th>iterations</th>\n",
       "      <th>samples</th>\n",
       "      <th>training_rmse</th>\n",
       "      <th>training_logloss</th>\n",
       "      <th>training_r2</th>\n",
       "      <th>...</th>\n",
       "      <th>training_pr_auc</th>\n",
       "      <th>training_lift</th>\n",
       "      <th>training_classification_error</th>\n",
       "      <th>validation_rmse</th>\n",
       "      <th>validation_logloss</th>\n",
       "      <th>validation_r2</th>\n",
       "      <th>validation_auc</th>\n",
       "      <th>validation_pr_auc</th>\n",
       "      <th>validation_lift</th>\n",
       "      <th>validation_classification_error</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td></td>\n",
       "      <td>2019-02-26 17:27:09</td>\n",
       "      <td>0.000 sec</td>\n",
       "      <td>None</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td></td>\n",
       "      <td>2019-02-26 17:27:13</td>\n",
       "      <td>5.906 sec</td>\n",
       "      <td>4150 obs/sec</td>\n",
       "      <td>0.100236</td>\n",
       "      <td>1</td>\n",
       "      <td>15059.0</td>\n",
       "      <td>0.193014</td>\n",
       "      <td>0.137157</td>\n",
       "      <td>0.835778</td>\n",
       "      <td>...</td>\n",
       "      <td>0.881030</td>\n",
       "      <td>2.846286</td>\n",
       "      <td>0.046567</td>\n",
       "      <td>0.202120</td>\n",
       "      <td>0.148220</td>\n",
       "      <td>0.818272</td>\n",
       "      <td>0.987389</td>\n",
       "      <td>0.855511</td>\n",
       "      <td>2.924518</td>\n",
       "      <td>0.052104</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td></td>\n",
       "      <td>2019-02-26 17:27:33</td>\n",
       "      <td>25.296 sec</td>\n",
       "      <td>7002 obs/sec</td>\n",
       "      <td>1.000047</td>\n",
       "      <td>10</td>\n",
       "      <td>150242.0</td>\n",
       "      <td>0.155075</td>\n",
       "      <td>0.085113</td>\n",
       "      <td>0.893992</td>\n",
       "      <td>...</td>\n",
       "      <td>0.972387</td>\n",
       "      <td>2.874749</td>\n",
       "      <td>0.030279</td>\n",
       "      <td>0.161295</td>\n",
       "      <td>0.089937</td>\n",
       "      <td>0.884269</td>\n",
       "      <td>0.993768</td>\n",
       "      <td>0.972994</td>\n",
       "      <td>2.924518</td>\n",
       "      <td>0.032913</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "               timestamp    duration training_speed    epochs  iterations  \\\n",
       "0    2019-02-26 17:27:09   0.000 sec           None  0.000000           0   \n",
       "1    2019-02-26 17:27:13   5.906 sec   4150 obs/sec  0.100236           1   \n",
       "2    2019-02-26 17:27:33  25.296 sec   7002 obs/sec  1.000047          10   \n",
       "\n",
       "    samples  training_rmse  training_logloss  training_r2  \\\n",
       "0       0.0            NaN               NaN          NaN   \n",
       "1   15059.0       0.193014          0.137157     0.835778   \n",
       "2  150242.0       0.155075          0.085113     0.893992   \n",
       "\n",
       "                ...                 training_pr_auc  training_lift  \\\n",
       "0               ...                             NaN            NaN   \n",
       "1               ...                        0.881030       2.846286   \n",
       "2               ...                        0.972387       2.874749   \n",
       "\n",
       "   training_classification_error  validation_rmse  validation_logloss  \\\n",
       "0                            NaN              NaN                 NaN   \n",
       "1                       0.046567         0.202120            0.148220   \n",
       "2                       0.030279         0.161295            0.089937   \n",
       "\n",
       "   validation_r2  validation_auc  validation_pr_auc  validation_lift  \\\n",
       "0            NaN             NaN                NaN              NaN   \n",
       "1       0.818272        0.987389           0.855511         2.924518   \n",
       "2       0.884269        0.993768           0.972994         2.924518   \n",
       "\n",
       "   validation_classification_error  \n",
       "0                              NaN  \n",
       "1                         0.052104  \n",
       "2                         0.032913  \n",
       "\n",
       "[3 rows x 21 columns]"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "higgs_v1_df = higgs_model_v1.score_history()\n",
    "higgs_v1_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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dy4HDxb+fXDixAleffVVlixZwsaNGwkKCuK9997LX16pUiVWrlzJsGHDAOsQ1rJly/j73/9OeHg4Dz74IH/88QfDhw/nsccey3/dnj17WLJkicuSAZS1PQRH5cpBx3uhze2w6t+wejLs+h/0egx6Pw4Vq7k6QlWCLvVL/mrp1q3bORcSTZ48mQULrK6hBw8eZO/evdStW/ec1zRr1oyOHTsC0KVLF+Li4gpd95AhQ/LHfPvttwCsXLkyf/0DBgygdu3aF4wtIiKCoUOH5u891KlT57wx27Zt47nnnuPUqVOkpKTQv39/AHr37s2IESO4++678+Po2bMnkyZNIj4+niFDhtCyZcuLfzi25ORkDh06xODBgwHrCxesK8+feeYZli9fTrly5Th06BDHjh276LpWrlzJxIkTAWjdujVNmzZlz549ANxwww3UrFkTgOuuu479+/fTuHHj89axdu1aduzYQe/evQHIysqiZ8+e+csLJjPHx2vWrMn/WzzwwAP885//zF921113ufywYdncQ3BUsRqEPWsVnlvfCsvfsgrPm7+EvDxXR6c8XNWqVfPvL126lCVLlrBmzRq2bNlCp06dCr3QyPH4upeXFzk5OYWu++w4xzFFqRkaYy55bvuIESOYMmUKW7du5YUXXsiPd/r06bz66qscPHiQjh07kpiYyH333Ze/F9C/f38iIiKcjqMwX3zxBQkJCWzYsIHNmzfToEGDS16YdbHtd/ZzNcbQr18/Nm/enH+o7+yeEZz7Ny3ssSPHz/di464WTQhn1Wps1RdGLbYKzt+NhU/C4MBaV0emPEj16tVJTk4udNnp06epXbs2VapUYdeuXaxdW/z/9vr06cPXX38NWMfBT548ecGxN9xwA19//XX+YaukpKTzxiQnJ+Pr60t2djZffPFF/vMxMTF0796dl19+GR8fHw4ePEhsbCzNmzfnscce44477uCPP/5wKuYaNWrQqFEjvvvuOwAyMzNJS0vj9OnT1K9fn/LlyxMZGcn+/da0/xf7jPv27Zsf5549ezhw4ACtWrVyKo6zevTowapVq4iOjgYgLS0tfy/jUnr16sVXX30FWAmtT58+RXrvkqYJoaAm3WH0bzD4I0g+CjP72/WFCx9rVcpZdevWpXfv3rRr144nnnjinGUDBgwgJyeHwMBA/u///o8ePXoU+/u/8MILLF68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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(higgs_v1_df['training_classification_error'], label=\"training_classification_error\")\n",
    "plt.plot(higgs_v1_df['validation_classification_error'], label=\"validation_classification_error\")\n",
    "plt.title(\"Higgs Deep Learner\")\n",
    "plt.legend();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "deeplearning prediction progress: |███████████████████████████████████████| 100%\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.96717891104602172"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pred = higgs_model_v1.predict(test[1:-1]).as_data_frame(use_pandas=True)\n",
    "test_actual = test.as_data_frame(use_pandas=True)['Label']\n",
    "(test_actual == pred['predict']).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "deeplearning Model Build progress: |██████████████████████████████████████| 100%\n"
     ]
    }
   ],
   "source": [
    "higgs_model_v2 = H2ODeepLearningEstimator(model_id = 'higgs_v2', hidden = [32, 32, 32], epochs = 1000000,\n",
    "                                           score_validation_samples = 10000, stopping_rounds = 2, stopping_metric = 'misclassification', \n",
    "                                           stopping_tolerance = 0.01)\n",
    "higgs_model_v2.train(higgs_X, higgs_y, training_frame = train, validation_frame = valid)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>timestamp</th>\n",
       "      <th>duration</th>\n",
       "      <th>training_speed</th>\n",
       "      <th>epochs</th>\n",
       "      <th>iterations</th>\n",
       "      <th>samples</th>\n",
       "      <th>training_rmse</th>\n",
       "      <th>training_logloss</th>\n",
       "      <th>training_r2</th>\n",
       "      <th>...</th>\n",
       "      <th>training_pr_auc</th>\n",
       "      <th>training_lift</th>\n",
       "      <th>training_classification_error</th>\n",
       "      <th>validation_rmse</th>\n",
       "      <th>validation_logloss</th>\n",
       "      <th>validation_r2</th>\n",
       "      <th>validation_auc</th>\n",
       "      <th>validation_pr_auc</th>\n",
       "      <th>validation_lift</th>\n",
       "      <th>validation_classification_error</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td></td>\n",
       "      <td>2019-02-26 17:33:02</td>\n",
       "      <td>0.000 sec</td>\n",
       "      <td>None</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td></td>\n",
       "      <td>2019-02-26 17:33:04</td>\n",
       "      <td>2.154 sec</td>\n",
       "      <td>54008 obs/sec</td>\n",
       "      <td>0.667574</td>\n",
       "      <td>1</td>\n",
       "      <td>100293.0</td>\n",
       "      <td>0.177161</td>\n",
       "      <td>0.105793</td>\n",
       "      <td>0.861606</td>\n",
       "      <td>...</td>\n",
       "      <td>0.940723</td>\n",
       "      <td>2.876482</td>\n",
       "      <td>0.035700</td>\n",
       "      <td>0.183381</td>\n",
       "      <td>0.112063</td>\n",
       "      <td>0.850665</td>\n",
       "      <td>0.992171</td>\n",
       "      <td>0.931645</td>\n",
       "      <td>2.919839</td>\n",
       "      <td>0.035453</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td></td>\n",
       "      <td>2019-02-26 17:33:09</td>\n",
       "      <td>7.227 sec</td>\n",
       "      <td>59430 obs/sec</td>\n",
       "      <td>2.662276</td>\n",
       "      <td>4</td>\n",
       "      <td>399967.0</td>\n",
       "      <td>0.134198</td>\n",
       "      <td>0.063809</td>\n",
       "      <td>0.920591</td>\n",
       "      <td>...</td>\n",
       "      <td>0.978201</td>\n",
       "      <td>2.876482</td>\n",
       "      <td>0.021722</td>\n",
       "      <td>0.135363</td>\n",
       "      <td>0.064045</td>\n",
       "      <td>0.918632</td>\n",
       "      <td>0.997001</td>\n",
       "      <td>0.983158</td>\n",
       "      <td>2.919839</td>\n",
       "      <td>0.022911</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td></td>\n",
       "      <td>2019-02-26 17:33:15</td>\n",
       "      <td>13.088 sec</td>\n",
       "      <td>64229 obs/sec</td>\n",
       "      <td>5.324019</td>\n",
       "      <td>8</td>\n",
       "      <td>799854.0</td>\n",
       "      <td>0.077841</td>\n",
       "      <td>0.024819</td>\n",
       "      <td>0.973283</td>\n",
       "      <td>...</td>\n",
       "      <td>0.956475</td>\n",
       "      <td>2.876482</td>\n",
       "      <td>0.007140</td>\n",
       "      <td>0.073988</td>\n",
       "      <td>0.022476</td>\n",
       "      <td>0.975690</td>\n",
       "      <td>0.999362</td>\n",
       "      <td>0.967411</td>\n",
       "      <td>2.919839</td>\n",
       "      <td>0.006123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td></td>\n",
       "      <td>2019-02-26 17:33:21</td>\n",
       "      <td>18.811 sec</td>\n",
       "      <td>66716 obs/sec</td>\n",
       "      <td>7.986368</td>\n",
       "      <td>12</td>\n",
       "      <td>1199832.0</td>\n",
       "      <td>0.054206</td>\n",
       "      <td>0.011517</td>\n",
       "      <td>0.987044</td>\n",
       "      <td>...</td>\n",
       "      <td>0.974275</td>\n",
       "      <td>2.876482</td>\n",
       "      <td>0.003017</td>\n",
       "      <td>0.055002</td>\n",
       "      <td>0.011681</td>\n",
       "      <td>0.986566</td>\n",
       "      <td>0.999853</td>\n",
       "      <td>0.955009</td>\n",
       "      <td>2.919839</td>\n",
       "      <td>0.003555</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td></td>\n",
       "      <td>2019-02-26 17:33:26</td>\n",
       "      <td>24.496 sec</td>\n",
       "      <td>68259 obs/sec</td>\n",
       "      <td>10.648630</td>\n",
       "      <td>16</td>\n",
       "      <td>1599797.0</td>\n",
       "      <td>0.047475</td>\n",
       "      <td>0.008089</td>\n",
       "      <td>0.990062</td>\n",
       "      <td>...</td>\n",
       "      <td>0.936304</td>\n",
       "      <td>2.876482</td>\n",
       "      <td>0.002112</td>\n",
       "      <td>0.046520</td>\n",
       "      <td>0.008386</td>\n",
       "      <td>0.990390</td>\n",
       "      <td>0.999938</td>\n",
       "      <td>0.912505</td>\n",
       "      <td>2.919839</td>\n",
       "      <td>0.002271</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td></td>\n",
       "      <td>2019-02-26 17:33:32</td>\n",
       "      <td>30.048 sec</td>\n",
       "      <td>69473 obs/sec</td>\n",
       "      <td>13.309688</td>\n",
       "      <td>20</td>\n",
       "      <td>1999581.0</td>\n",
       "      <td>0.058554</td>\n",
       "      <td>0.015736</td>\n",
       "      <td>0.984882</td>\n",
       "      <td>...</td>\n",
       "      <td>0.869400</td>\n",
       "      <td>2.876482</td>\n",
       "      <td>0.003117</td>\n",
       "      <td>0.049854</td>\n",
       "      <td>0.012284</td>\n",
       "      <td>0.988963</td>\n",
       "      <td>0.999821</td>\n",
       "      <td>0.868623</td>\n",
       "      <td>2.919839</td>\n",
       "      <td>0.002173</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td></td>\n",
       "      <td>2019-02-26 17:33:38</td>\n",
       "      <td>35.806 sec</td>\n",
       "      <td>69849 obs/sec</td>\n",
       "      <td>15.971092</td>\n",
       "      <td>24</td>\n",
       "      <td>2399417.0</td>\n",
       "      <td>0.043850</td>\n",
       "      <td>0.007112</td>\n",
       "      <td>0.991521</td>\n",
       "      <td>...</td>\n",
       "      <td>0.872639</td>\n",
       "      <td>2.876482</td>\n",
       "      <td>0.002112</td>\n",
       "      <td>0.045350</td>\n",
       "      <td>0.008040</td>\n",
       "      <td>0.990867</td>\n",
       "      <td>0.999927</td>\n",
       "      <td>0.881919</td>\n",
       "      <td>2.919839</td>\n",
       "      <td>0.002173</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td></td>\n",
       "      <td>2019-02-26 17:33:44</td>\n",
       "      <td>41.819 sec</td>\n",
       "      <td>69868 obs/sec</td>\n",
       "      <td>18.635584</td>\n",
       "      <td>28</td>\n",
       "      <td>2799717.0</td>\n",
       "      <td>0.044308</td>\n",
       "      <td>0.007347</td>\n",
       "      <td>0.991343</td>\n",
       "      <td>...</td>\n",
       "      <td>0.810791</td>\n",
       "      <td>2.876482</td>\n",
       "      <td>0.001307</td>\n",
       "      <td>0.043401</td>\n",
       "      <td>0.007024</td>\n",
       "      <td>0.991635</td>\n",
       "      <td>0.999988</td>\n",
       "      <td>0.820912</td>\n",
       "      <td>2.919839</td>\n",
       "      <td>0.001086</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td></td>\n",
       "      <td>2019-02-26 17:33:49</td>\n",
       "      <td>47.212 sec</td>\n",
       "      <td>70865 obs/sec</td>\n",
       "      <td>21.300343</td>\n",
       "      <td>32</td>\n",
       "      <td>3200057.0</td>\n",
       "      <td>0.022893</td>\n",
       "      <td>0.002247</td>\n",
       "      <td>0.997689</td>\n",
       "      <td>...</td>\n",
       "      <td>0.935190</td>\n",
       "      <td>2.876482</td>\n",
       "      <td>0.000503</td>\n",
       "      <td>0.017798</td>\n",
       "      <td>0.001711</td>\n",
       "      <td>0.998593</td>\n",
       "      <td>0.999994</td>\n",
       "      <td>0.936552</td>\n",
       "      <td>2.919839</td>\n",
       "      <td>0.000198</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td></td>\n",
       "      <td>2019-02-26 17:33:54</td>\n",
       "      <td>52.606 sec</td>\n",
       "      <td>71541 obs/sec</td>\n",
       "      <td>23.963211</td>\n",
       "      <td>36</td>\n",
       "      <td>3600113.0</td>\n",
       "      <td>0.059220</td>\n",
       "      <td>0.016308</td>\n",
       "      <td>0.984536</td>\n",
       "      <td>...</td>\n",
       "      <td>0.702021</td>\n",
       "      <td>2.876482</td>\n",
       "      <td>0.001307</td>\n",
       "      <td>0.050096</td>\n",
       "      <td>0.011124</td>\n",
       "      <td>0.988856</td>\n",
       "      <td>0.999985</td>\n",
       "      <td>0.580709</td>\n",
       "      <td>2.919839</td>\n",
       "      <td>0.000988</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td></td>\n",
       "      <td>2019-02-26 17:34:00</td>\n",
       "      <td>58.002 sec</td>\n",
       "      <td>72356 obs/sec</td>\n",
       "      <td>26.625906</td>\n",
       "      <td>40</td>\n",
       "      <td>4000143.0</td>\n",
       "      <td>0.040362</td>\n",
       "      <td>0.006537</td>\n",
       "      <td>0.992817</td>\n",
       "      <td>...</td>\n",
       "      <td>0.571508</td>\n",
       "      <td>2.876482</td>\n",
       "      <td>0.001911</td>\n",
       "      <td>0.045297</td>\n",
       "      <td>0.008599</td>\n",
       "      <td>0.990889</td>\n",
       "      <td>0.999939</td>\n",
       "      <td>0.668565</td>\n",
       "      <td>2.919839</td>\n",
       "      <td>0.002469</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td></td>\n",
       "      <td>2019-02-26 17:34:05</td>\n",
       "      <td>1 min  2.885 sec</td>\n",
       "      <td>73416 obs/sec</td>\n",
       "      <td>29.289067</td>\n",
       "      <td>44</td>\n",
       "      <td>4400243.0</td>\n",
       "      <td>0.022988</td>\n",
       "      <td>0.002127</td>\n",
       "      <td>0.997670</td>\n",
       "      <td>...</td>\n",
       "      <td>0.626549</td>\n",
       "      <td>2.876482</td>\n",
       "      <td>0.000503</td>\n",
       "      <td>0.029319</td>\n",
       "      <td>0.003176</td>\n",
       "      <td>0.996183</td>\n",
       "      <td>0.999995</td>\n",
       "      <td>0.623116</td>\n",
       "      <td>2.919839</td>\n",
       "      <td>0.000889</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td></td>\n",
       "      <td>2019-02-26 17:34:05</td>\n",
       "      <td>1 min  3.096 sec</td>\n",
       "      <td>73402 obs/sec</td>\n",
       "      <td>29.289067</td>\n",
       "      <td>44</td>\n",
       "      <td>4400243.0</td>\n",
       "      <td>0.022893</td>\n",
       "      <td>0.002247</td>\n",
       "      <td>0.997689</td>\n",
       "      <td>...</td>\n",
       "      <td>0.935190</td>\n",
       "      <td>2.876482</td>\n",
       "      <td>0.000503</td>\n",
       "      <td>0.017798</td>\n",
       "      <td>0.001711</td>\n",
       "      <td>0.998593</td>\n",
       "      <td>0.999994</td>\n",
       "      <td>0.936552</td>\n",
       "      <td>2.919839</td>\n",
       "      <td>0.000198</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>14 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                timestamp           duration training_speed     epochs  \\\n",
       "0     2019-02-26 17:33:02          0.000 sec           None   0.000000   \n",
       "1     2019-02-26 17:33:04          2.154 sec  54008 obs/sec   0.667574   \n",
       "2     2019-02-26 17:33:09          7.227 sec  59430 obs/sec   2.662276   \n",
       "3     2019-02-26 17:33:15         13.088 sec  64229 obs/sec   5.324019   \n",
       "4     2019-02-26 17:33:21         18.811 sec  66716 obs/sec   7.986368   \n",
       "5     2019-02-26 17:33:26         24.496 sec  68259 obs/sec  10.648630   \n",
       "6     2019-02-26 17:33:32         30.048 sec  69473 obs/sec  13.309688   \n",
       "7     2019-02-26 17:33:38         35.806 sec  69849 obs/sec  15.971092   \n",
       "8     2019-02-26 17:33:44         41.819 sec  69868 obs/sec  18.635584   \n",
       "9     2019-02-26 17:33:49         47.212 sec  70865 obs/sec  21.300343   \n",
       "10    2019-02-26 17:33:54         52.606 sec  71541 obs/sec  23.963211   \n",
       "11    2019-02-26 17:34:00         58.002 sec  72356 obs/sec  26.625906   \n",
       "12    2019-02-26 17:34:05   1 min  2.885 sec  73416 obs/sec  29.289067   \n",
       "13    2019-02-26 17:34:05   1 min  3.096 sec  73402 obs/sec  29.289067   \n",
       "\n",
       "    iterations    samples  training_rmse  training_logloss  training_r2  \\\n",
       "0            0        0.0            NaN               NaN          NaN   \n",
       "1            1   100293.0       0.177161          0.105793     0.861606   \n",
       "2            4   399967.0       0.134198          0.063809     0.920591   \n",
       "3            8   799854.0       0.077841          0.024819     0.973283   \n",
       "4           12  1199832.0       0.054206          0.011517     0.987044   \n",
       "5           16  1599797.0       0.047475          0.008089     0.990062   \n",
       "6           20  1999581.0       0.058554          0.015736     0.984882   \n",
       "7           24  2399417.0       0.043850          0.007112     0.991521   \n",
       "8           28  2799717.0       0.044308          0.007347     0.991343   \n",
       "9           32  3200057.0       0.022893          0.002247     0.997689   \n",
       "10          36  3600113.0       0.059220          0.016308     0.984536   \n",
       "11          40  4000143.0       0.040362          0.006537     0.992817   \n",
       "12          44  4400243.0       0.022988          0.002127     0.997670   \n",
       "13          44  4400243.0       0.022893          0.002247     0.997689   \n",
       "\n",
       "                 ...                 training_pr_auc  training_lift  \\\n",
       "0                ...                             NaN            NaN   \n",
       "1                ...                        0.940723       2.876482   \n",
       "2                ...                        0.978201       2.876482   \n",
       "3                ...                        0.956475       2.876482   \n",
       "4                ...                        0.974275       2.876482   \n",
       "5                ...                        0.936304       2.876482   \n",
       "6                ...                        0.869400       2.876482   \n",
       "7                ...                        0.872639       2.876482   \n",
       "8                ...                        0.810791       2.876482   \n",
       "9                ...                        0.935190       2.876482   \n",
       "10               ...                        0.702021       2.876482   \n",
       "11               ...                        0.571508       2.876482   \n",
       "12               ...                        0.626549       2.876482   \n",
       "13               ...                        0.935190       2.876482   \n",
       "\n",
       "    training_classification_error  validation_rmse  validation_logloss  \\\n",
       "0                             NaN              NaN                 NaN   \n",
       "1                        0.035700         0.183381            0.112063   \n",
       "2                        0.021722         0.135363            0.064045   \n",
       "3                        0.007140         0.073988            0.022476   \n",
       "4                        0.003017         0.055002            0.011681   \n",
       "5                        0.002112         0.046520            0.008386   \n",
       "6                        0.003117         0.049854            0.012284   \n",
       "7                        0.002112         0.045350            0.008040   \n",
       "8                        0.001307         0.043401            0.007024   \n",
       "9                        0.000503         0.017798            0.001711   \n",
       "10                       0.001307         0.050096            0.011124   \n",
       "11                       0.001911         0.045297            0.008599   \n",
       "12                       0.000503         0.029319            0.003176   \n",
       "13                       0.000503         0.017798            0.001711   \n",
       "\n",
       "    validation_r2  validation_auc  validation_pr_auc  validation_lift  \\\n",
       "0             NaN             NaN                NaN              NaN   \n",
       "1        0.850665        0.992171           0.931645         2.919839   \n",
       "2        0.918632        0.997001           0.983158         2.919839   \n",
       "3        0.975690        0.999362           0.967411         2.919839   \n",
       "4        0.986566        0.999853           0.955009         2.919839   \n",
       "5        0.990390        0.999938           0.912505         2.919839   \n",
       "6        0.988963        0.999821           0.868623         2.919839   \n",
       "7        0.990867        0.999927           0.881919         2.919839   \n",
       "8        0.991635        0.999988           0.820912         2.919839   \n",
       "9        0.998593        0.999994           0.936552         2.919839   \n",
       "10       0.988856        0.999985           0.580709         2.919839   \n",
       "11       0.990889        0.999939           0.668565         2.919839   \n",
       "12       0.996183        0.999995           0.623116         2.919839   \n",
       "13       0.998593        0.999994           0.936552         2.919839   \n",
       "\n",
       "    validation_classification_error  \n",
       "0                               NaN  \n",
       "1                          0.035453  \n",
       "2                          0.022911  \n",
       "3                          0.006123  \n",
       "4                          0.003555  \n",
       "5                          0.002271  \n",
       "6                          0.002173  \n",
       "7                          0.002173  \n",
       "8                          0.001086  \n",
       "9                          0.000198  \n",
       "10                         0.000988  \n",
       "11                         0.002469  \n",
       "12                         0.000889  \n",
       "13                         0.000198  \n",
       "\n",
       "[14 rows x 21 columns]"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "higgs_v2_df = higgs_model_v2.score_history()\n",
    "higgs_v2_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(higgs_v2_df['training_classification_error'], label=\"training_classification_error\")\n",
    "plt.plot(higgs_v2_df['validation_classification_error'], label=\"validation_classification_error\")\n",
    "plt.title(\"Higgs Deep Learner (Early Stop)\")\n",
    "plt.legend();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "deeplearning prediction progress: |███████████████████████████████████████| 100%\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.99927777554869002"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pred = higgs_model_v2.predict(test[1:-1]).as_data_frame(use_pandas=True)\n",
    "test_actual = test.as_data_frame(use_pandas=True)['Label']\n",
    "(test_actual == pred['predict']).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1008x720 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "higgs_model_v2.varimp_plot();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AutoML progress: |████████████████████████████████████████████████████████| 100%\n"
     ]
    }
   ],
   "source": [
    "from h2o.automl import H2OAutoML\n",
    "\n",
    "aml = H2OAutoML(max_models = 10, max_runtime_secs=100, seed = 1)\n",
    "aml.train(higgs_X, higgs_y, training_frame = train, validation_frame = valid)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<thead>\n",
       "<tr><th>model_id                                           </th><th style=\"text-align: right;\">     auc</th><th style=\"text-align: right;\">    logloss</th><th style=\"text-align: right;\">  mean_per_class_error</th><th style=\"text-align: right;\">      rmse</th><th style=\"text-align: right;\">       mse</th></tr>\n",
       "</thead>\n",
       "<tbody>\n",
       "<tr><td>XRT_1_AutoML_20190226_174714                       </td><td style=\"text-align: right;\">1       </td><td style=\"text-align: right;\">0.011546   </td><td style=\"text-align: right;\">           0          </td><td style=\"text-align: right;\">0.0411041 </td><td style=\"text-align: right;\">0.00168955</td></tr>\n",
       "<tr><td>StackedEnsemble_BestOfFamily_AutoML_20190226_174714</td><td style=\"text-align: right;\">1       </td><td style=\"text-align: right;\">0.000357831</td><td style=\"text-align: right;\">           0          </td><td style=\"text-align: right;\">0.00241325</td><td style=\"text-align: right;\">5.8238e-06</td></tr>\n",
       "<tr><td>StackedEnsemble_AllModels_AutoML_20190226_174714   </td><td style=\"text-align: right;\">1       </td><td style=\"text-align: right;\">0.000357831</td><td style=\"text-align: right;\">           0          </td><td style=\"text-align: right;\">0.00241325</td><td style=\"text-align: right;\">5.8238e-06</td></tr>\n",
       "<tr><td>DRF_1_AutoML_20190226_174714                       </td><td style=\"text-align: right;\">1       </td><td style=\"text-align: right;\">0.0138703  </td><td style=\"text-align: right;\">           1.47664e-05</td><td style=\"text-align: right;\">0.0458373 </td><td style=\"text-align: right;\">0.00210105</td></tr>\n",
       "<tr><td>GLM_grid_1_AutoML_20190226_174714_model_1          </td><td style=\"text-align: right;\">0.994749</td><td style=\"text-align: right;\">0.0932277  </td><td style=\"text-align: right;\">           0.0283046  </td><td style=\"text-align: right;\">0.159485  </td><td style=\"text-align: right;\">0.0254355 </td></tr>\n",
       "</tbody>\n",
       "</table>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": []
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "aml.leaderboard"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "AutoML has built 5 models inlcuding GLM, DRF (Distributed Random Forest) and XRT (Extremely Randomized Trees) and two stacked ensemble models (the 2nd and 3rd) and the best model is XRT.\n",
    "\n",
    "It turns out, my proud deep learning models are not even on the leaderboard."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
